print1959. Плитки

printПлитки

Ограничения: время – 300ms/600ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Мастеру нужно выложить квадратной керамической плиткой прямоугольный участок размером ровно `N\ times\ M` плиток. Всего у него в наличии имеется `K` плиток. Однако плитки оказались из трёх разных партий, и в результате отличаются оттенком цвета — так называемым тоном.
Плитки 1-го и 2-го тона визуально довольно похожи и могут быть соседями при укладке. Это же относится к плиткам 2-го и 3-го тона. А вот плитки 1-го и 3-го тона уже заметно различаются, и соседствовать не должны. Требуется определить, можно ли уложить плитку так, чтобы никакие две плитки 1-го и 3-го тона не соседствовали по стороне. Если это возможно, то требуется также предложить один из вариантов укладки.
В первой строке входного файла записаны через пробел два целых числа `N` и `M` (`N,\ M\ ≥\ 1,\ `N*M≤100`). В следующей строке записаны через пробел три целых числа `K_1`, `K_2`, `K_3` — количества плиток первого, второго и третьего тона (`K_1,\ K_2,\ K_3\ ≥\ 0`, `N*M\ ≤\ K_1\ +\ K_2\ +\ K_3\ ≤\ 2*N*M`).
В первой строке выходного файла выведите одно слово YES, если уложить плитки требуемым образом можно, или NO в противном случае. В случае ответа YES далее выведите `N` строк по `M` цифр 1, 2 или 3, обозначающих тона используемых при укладке плиток. Цифры не должны быть разделены пробелами. При наличии нескольких правильных ответов выведите любой.

Пример ввода 1

2 3
1 3 4

Пример вывода 1

YES
212
323

Пример ввода 2

2 3
1 1 4

Пример вывода 2

NO
Источник: XVI межвузовская олимпиада по программированию, Вологда, 2013
loading