Для решения этой задачи мы можем использовать обратный алгоритм шифрования, чтобы восстановить исходную пару чисел.
Пусть исходная пара чисел была (a, b), а шифрованная пара чисел (x, y).
По условию задачи, мы знаем, что:
- x ≡ (a+b) mod m
- y ≡ (a*b) mod m
При уменьшении второго числа на единицу, новая пара чисел будет (a, b-1), а шифрованная пара чисел (x', y').
Из условия "шифр новой пары отличается от шифра прежней перестановкой чисел" следует, что:
- x' ≡ (a+b-1) mod m
- y' ≡ (a*b) mod m
Теперь мы можем решить систему уравнений:
1) x' ≡ a+b-1 ≡ x-1 ≡ (a+b) mod m
2) y' ≡ a*b ≡ y ≡ (a*b) mod m
Из уравнения 1) следует, что (a+b-1) mod m ≡ (a+b) mod m.
Значит, (a+b-1) и (a+b) должны иметь одинаковые остатки от деления на m.
Это означает, что a и b должны иметь разные остатки от деления на m.
Отсюда следует, что a и b не могут быть равными, иначе они будут иметь одинаковые остатки от деления на m.
Также a и b не могут быть равными 1, иначе (a+b-1) и (a+b) будут иметь одинаковые остатки от деления на m.
Теперь рассмотрим уравнение 2).
Из него следует, что a*b и (a*b) должны иметь одинаковые остатки от деления на m.
То есть, (a*b) mod m ≡ a*b mod m.
Это значит, что m должно быть делителем (a*b), иначе (a*b) и a*b будут иметь разные остатки от деления на m.
Таким образом, основная идея решения задачи заключается в том, чтобы перебрать все возможные значения для a и найти такое значение b, что m делит (a*b).
Но сначала найдем ограничения для перебора значений a.
Для этого заметим следующее:
m должно быть больше максимального значения (a+b-1) и максимального значения (a*b).
Максимальное значение (a+b-1) достигается, когда a и b равны максимальным значениям из промежутка [2,m-1].
То есть, максимально возможное значение (a+b-1) равно (m-1) + (m-1) - 1 = 2m - 2 - 1 = 2m - 3.
Максимальное значение (a*b) достигается, когда a и b равны максимальным значениям из промежутка [2,m-1].
То есть, максимально возможное значение (a*b) равно (m-1) * (m-1) = (m^2 - 2m + 1).
Таким образом, мы получаем следующее неравенство:
m > 2m - 3 и m > m^2 - 2m + 1.
Решая эти неравенства, получим:
2m - 3 < m, m^2 - 2m + 1 < m.
m < 3 и m^2 - 3m + 1 < 0.
Так как m > 2, то первое неравенство выполняется автоматически.
Теперь решим второе неравенство.
m^2 - 3m + 1 < 0
m^2 - 3m < -1
m(m - 3) < -1
Поскольку m > 2, то можно умножить обе части неравенства на m - 3 и поменять знак неравенства:
m < -1/(m - 3)
Таким образом, суммируя все наши ограничения, получается:
2 < m < -1/(m - 3).
Но так как m представляет собой число с плавающей запятой, для нас смысла имеет только целая часть m.
То есть, мы можем перебрать все значения m от 3 до 5500000 и для каждого значения вычислить все возможные значения для a и проверить, удовлетворяет ли m условиям.
Таким образом, мы можем приступить к решению задачи следующим образом:
1. Перебирать все значения m от 3 до 5500000.
2. Вычислить наибольшее возможное значение для a, исходя из границ m, описанных выше.
3. Для каждого значения a от 2 до наибольшего возможного значения a:
3.1. Вычислить наибольшее возможное значение для b, исходя из границ a и m.
3.2. Для каждого значения b от 2 до наибольшего возможного значения b:
3.2.1. Вычислить x и y по формулам, описанным выше.
3.2.2. Проверить, что x' и y' (полученные при уменьшении b на единицу) отличаются от x и y.
3.2.3. Если x' и y' отличаются от x и y, то это значит, что мы нашли искомую пару чисел a и b.
3.2.4. Прекратить перебор значений b.
3.3. Прекратить перебор значений a.
4. Вывести найденную пару чисел a и b.
Таким образом, мы сможем найти пару чисел, которые изначально выбрал Саша, если m = 2700000.0.