Автор: | И. Бураго, А. Кленин | Ограничение времени: | 2 сек | |
Входной файл: | input.txt | Ограничение памяти: | 64 Мб | |
Выходной файл: | output.txt | |||
Максимальный балл: | 50 |
Даны целые положительные числа S и k. Требуется найти такие целые положительные числа a и b, что:
№ | Входной файл (input.txt ) |
Выходной файл (output.txt ) |
---|---|---|
1 |
|
|
2 |
|
|
Согласно формуле суммы арифметической прогрессии, сумма всех чисел от a до b равна (a + b)(b − a + 1) / 2.
Перебирая все a от 1 до k, мы можем вычислить b из квадратного уравнения b2 + b + ( − 2S − a2 + a) = 0. Если значение b получилось целым, и b ≥ k, то a b — решение задачи. Порядок перебора гарантирует, что первое найденное решение будет содержать минимальное значение a.
Переберём все разложения вида 2S = x × y. Из значений x и y решением системы линейных уравнений легко получаются a и b. Если a и b — целые, и a ≤ k ≤ b, то решение найдено. Правильно выбрав порядок перебора делителей 2S, можно обеспечить минимальное значение a в первом найденном решении.