eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Качка не любить умови

Качка не любить умови

Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB

Велика Качка любить задачi, але не любить довгi умови, тож вона мене попросила зробити умову настiльки малою, наскiльки це можливо.

Вам дано масив a довжиною n i число k. Кожен елемент масиву рiвен 1, −1 або 0. Ваше завдання замiнити усi нулики на −1 чи 1 так, щоб сума елементiв масиву була додатною i дiлилась нацiло на k.

Вхідні дані

Перший рядок мiстить два цiлi числа n та k (1 ≤ n, k ≤ 2 · 10^5) — кiлькiсть чисел та число, на яке потрiбно, щоб дiлилась сума.

Другий рядок мiстить n цiлих чисел a[1], a[2], · · · , a[n] (−1 ≤ a[i] ≤ 1) — елементи масиву.

Вихідні дані

Якщо можливо так замiнити нулi на −1 чи 1, щоб сума елементiв масиву була додатною i дiлилась на k, то виведiть у першому рядку слово «Yes» (без лапок), а у другому n цiлих чисел — елементи нового масиву. Якщо iснує кiлька можливих розв’язкiв, виведiть будь-який.

Iнакше, виведiть в одному рядку слово «No» (без лапок).

Приклад

Вхідні дані #1
4 2
-1 -1 0 0
Вихідні дані #1
No
Вхідні дані #2
4 4
0 0 -1 0
Вихідні дані #2
No
Вхідні дані #3
4 2
-1 1 0 0
Вихідні дані #3
Yes
-1 1 1 1 
Вхідні дані #4
6 2
-1 -1 1 1 1 1
Вихідні дані #4
Yes
-1 -1 1 1 1 1 
Джерело 2019-2020 ACM-ICPC, SEERC, 1/4 фiналу, Днiпро, Київ, Львiв, Миколаїв, Тернопiль, Харкiв, 14 вересня 2019