B. Старая задача на новый лад (15 баллов)
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Одна старая задача имеет следующий вид
"Разбить часло 45 на сумму четырёх слагаемых так, что если к первому прибавить 2 из второго вычесть 2, третье умножить на 2, а четвертое разделить на 2, то получится одно и то же число".
Ответ к этой задаче - четыре числа 8, 12, 5 и 20. Можно убедиться, что в сумме они дают число 45, а если с каждым из них проделать соответствующую арифметическую операцию, то получится одно и тоже число 10.
Вам нужно решить чуть более общую задачу: даны числа n и k. Нужно представить число n в виде суммы четырех целых неотрицательных слагаемых а, b, c, d, таких, что а+k=b-k=с*k=d/k. Гарантируется, что для заданных n и k такое разбиение существует.
Формат ввода
В одной строке через пробел два числа n и k 1≤n*k≤10¹⁵
Формат вывода
Вывести через пробел в одну строку четыре целых неотрицательных числа a, b, с, d, таких, что a+b+c+d=n и a+k=b-k=c*k=d/k
Пример 1
Ввод 45 2
Вывод 8 12 5 20
Пример 2
Ввод 128 7
Вывод 7 21 2 98
Для решения этой задачи надо найти то число (t), которому равны значения а+k=b-k=с*k=d/k
t=а+k=b-k=с*k=d/k
О числе t из условия задачи известно, что это число меньше числа n, потому что каждое из чисел a, b, c и d меньше числа n.
Алгоритм решения задачи представляет поиск числа t подбором целых неотрицательных значений.
Зная число t, можно легко определить чему равны искомые числа:
а=t-k
b=t+k
с=t/k
d=t*k
Ввод осуществляется вводом строки, с последующим разбором функцией split на отдельные подстроки, разделённые пробелом, которые преобразуем в целые числа функцией int:
n, k=input("n k=")
n=int(n)
k=int(k)
Можно эти операторы записать одной строкой используя map:
n,k=map(int,input("n k=").split())
Код программы
n,k=map(int,input("n k=").split())
for t in range(n):
a=t-k
b=t+k
d=t*k
c=n-(a+b+d)
if a+k==b-k ==c*k ==d/k:
print(a,b,c,d)
Пример выполнения:
n k=45 2
8 12 5 20
Тестировать код (ссылка на работающий пример)