Подается массив из n натуральных чисел. Гарантируется, что в каждой i клетке число даёт остаток i от деления на n. В конце файла подается число k. Надо прибавить ко всем числам число k и при этом сохранить начальное условие (переписать это всё в новый массив). В качестве ответа укажите разность наибольшего и наименьшего из чисел, которые будут кратны числу n.
n = int(input())
ans = []
for i in range(n):
ans.append((int(input())))
ans_new = [10000000] * len(ans)
num = int(input())
for j in range(len(ans)):
ost = (ans[j] + num) % len(ans)
if ans[j] + num < ans_new[ost]:
ans_new[ost] = ans[j] + num
minim = ans_new[0]
ans_new = [-10000000] * len(ans)
for j in range(len(ans)):
ost = (ans[j] + num) % len(ans)
if ans[j] + num > ans_new[ost]:
ans_new[ost] = ans[j] + num
print(ans_new[0]-minim)
ans = []
for i in range(n):
ans.append((int(input())))
ans_new = [10000000] * len(ans)
num = int(input())
for j in range(len(ans)):
ost = (ans[j] + num) % len(ans)
if ans[j] + num < ans_new[ost]:
ans_new[ost] = ans[j] + num
minim = ans_new[0]
ans_new = [-10000000] * len(ans)
for j in range(len(ans)):
ost = (ans[j] + num) % len(ans)
if ans[j] + num > ans_new[ost]:
ans_new[ost] = ans[j] + num
print(ans_new[0]-minim)
Ответ: 0