Плитки
Ограничения: время – 300ms/600ms, память – 128MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение 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
YES
212
323
Источник: XVI межвузовская олимпиада по программированию, Вологда, 2013