eolymp
bolt
Try our new interface for solving problems
Məsələlər

Контрольный блок

Контрольный блок

Фирма \textit{Macrohard} разработала новый протокол обмена данными по сети. Каждый блок данных при этом обмене состоит из \textbf{N} чисел в диапазоне от \textbf{0} до \textbf{M-1} включительно. Чтобы повысить надежность передачи, вместе с блоком данных пересылается контрольный блок такой же длины. Предположим, что исходный блок состоит из чисел \textbf{a_1}, \textbf{a_2}, ..., \textbf{a_N}. Тогда, контрольный блок состоит из чисел \textbf{b_1}, \textbf{b_2}, ..., \textbf{b_N}, из диапазона от \textbf{0} до \textbf{M-1} включительно, таких что выполняются следующие равенства: \textbf{b_1=(a_N+b_N) mod M}, \textbf{b_2=(a_1+b_1) mod M}, \textbf{b_3=(a_2+b_2) mod M}, ..., \textbf{b_N=(a_\{N-1\}+b_\{N-1\}) mod M}, (обозначение \textbf{X mod M} обозначает остаток от деления \textbf{X} на \textbf{M}, например, \textbf{7 mod 4 = 3}, \textbf{6 mod 2 = 0}). Блоки данных, для которых нельзя построить контрольный блок, удовлетворяющий указанному свойству, считаются подозрительными и их передача по сети не разрешается. Ваня хочет поступить на работу программистом в фирму \textit{Macrohard}, и в качестве вступительного задания ему поручили написать процедуру построения контрольного блока для заданного блока данных. Помогите ему! \InputFile Первая строка входного файла содержит числа \textbf{N} и \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{1000}, \textbf{2} ≤ \textbf{M} ≤ \textbf{10^9}). Следующая строка содержит блок данных, для которого следует построить контрольный блок, числа разделены пробелами. \OutputFile В первой строке выходного файла выведите \textbf{YES}, если для данного блока данных можно построить контрольный блок и \textbf{NO}, если нельзя. В случае, если контрольный блок построить можно, на второй строке выведите контрольный блок. Числа разделяйте пробелами. Если решений несколько, можно выдать любое из них.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
4 2
0 0 0 0
Çıxış verilənləri #1
YES
0 0 0 0