|
Таблица
(Время: 1 сек. Память: 16 Мб Сложность: 45%)
Рассмотрим прямоугольную таблицу размером n×m. Занумеруем строки таблицы числами от 1 до n, а столбцы – числами от 1 до m. Будем такую таблицу последовательно заполнять числами следующим образом.
Обозначим через aij число, стоящее на пересечении i-ой строки и j-ого столбца. Первая строка таблицы заполняется заданными числами – a11, a12, …, a1m. Затем заполняются строки с номерами от 2 до n. Число aij вычисляется как сумма всех чисел таблицы, находящихся в «треугольнике» над элементом aij. Все вычисления при этом выполняются по модулю r.
Более точно, значение aij вычисляется по следующей формуле:
Например, если таблица состоит из трех строк и четырех столбцов, и первая строка состоит из чисел 2,3,4,5, а r = 40 то для этих исходных данных таблица будет выглядеть следующим образом (взятие по модулю показано только там, где оно приводит к изменению числа):
Требуется написать программу, которая по заданной первой строке таблицы (a11, a12, …, a1m), вычисляет последнюю строку, как описано выше.
Входные данные
Первая строка входного файла INPUT.TXT содержит числа n, m и r (2 ≤ n, m ≤ 2000, 2 ≤ r ≤ 109) – число строк и столбцов таблицы соответственно, а так же число, по модулю которого надо посчитать ответ. Следующая строка содержит m целых чисел – первую строку таблицы: a11, a12, …, a1m. Все a1i неотрицательны и не превосходят 109.
Выходные данные
В первой строке выходного файла OUTPUT.TXT необходимо вывести m чисел – последнюю строку таблицы: an1, an2, …, anm.
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | 2 3 10 1 2 3 | 3 6 5 |
2 | 3 3 10 1 1 1 | 8 0 8 |
3 | 3 4 40 2 3 4 5 | 23 0 4 33 |
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
| |