ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Уральская региональная командная олимпиада по программированию 2012

Описание     Задачи     Отправить на проверку     Состояние проверки     Результаты
Соревнование завершено

B. В храме Хаоса и Порядка

Ограничение времени: 2.0 секунды
Ограничение памяти: 64 МБ
Мир в опасности. Далеко-далеко на крайнем Западе стоит храм Хаоса и Порядка. Каждая из этих двух сил, если дать ей свободу, могла бы уничтожить Землю, поэтому спокойствие мира зависит от тонкого баланса между ними. Этот баланс поддерживают Монахи Равновесия.
Пол в храме расчерчен на одинаковые квадраты так, что получается поле n × m. В каждый квадрат Монахи Равновесия вписывают одну из k рун так, чтобы соблюсти нужный баланс. Заклинанием уровня t называются t одинаковых рун, стоящих подряд в одной строке, одном столбце или на одной диагонали таблицы.
Один раз в тысячелетие воплощения Порядка и Хаоса встречаются на Земле и договариваются о том, каким должен быть баланс l в этом тысячелетии. И через один день и две секунды после этой встречи монахи должны заполнить пол храма Хаоса и Порядка так, чтобы на нём встречались заклинания уровня l − 1 (иначе Хаос уничтожит мир), но не встречалось заклинаний уровня l (иначе мир будет уничтожен Порядком).
Помогите монахам найти нужное расположение рун и спасти Вселенную. На то, чтобы вписать руны, им потребуется целый день, поэтому ваша программа должна работать не дольше двух секунд.

Исходные данные

В единственной строке входных данных содержатся целые числа n, m, k, l (1 ≤ n, m ≤ 100; 1 ≤ k ≤ 26; 2 ≤ l ≤ 100).

Результат

Если вписать руны нужным образом невозможно, то в единственной строке выведите «NO». Иначе в первой строке выведите «YES», а в следующих n строках по m символов в каждой — заполненный рунами пол. Каждая руна должна обозначаться заглавной латинской буквой, разные руны обозначаются разными буквами, одинаковые — одинаковыми. Для обозначения рун разрешается использовать только первые k букв алфавита.

Примеры

исходные данныерезультат
3 4 4 2
YES
ABCB
CDAD
ABCB
2 2 1 2
NO
Автор задачи: Григорий Назаров
Источник задачи: Уральская региональная командная олимпиада по программированию 2012
Чтобы отправить решение этой задачи на проверку перейдите в Архив задач: 1921. В храме Хаоса и Порядка