printРабочее место участника

printЗадачи

1548. Инспекция

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

Инспекция, устроенная О.Бендером, встревожила завхоза 2-го дома Старсобеса. "Вслед за пожарным инспектором нужно ждать и других проверяющих", думал Альхен, пробираясь между ящиками на складе. По документам на складе должно быть `a` ящиков с продуктами. А на самом деле их осталось `b`. Внезапно его осенило.
Известно, что самая строгая инспекция никогда не проверяет ничего досконально. И когда инспектор придёт осматривать склад, он не обязательно будет пересчитывать все ящики. Ведь некоторые ящики могут лежать очень далеко, и до них невозможно добраться, не вытащив ящики, которые мешают.
Естественно, что проверяющий не будет вытаскивать ни одного ящика. Он просто посмотрит, сколько ящиков доступно, а всё, что недоступно, также посчитает за ящики.
Довольный собой, завхоз решил разложить ящики на складе, чтобы проверяющему показалось, что ящиков на складе не меньше, чем положено по документам. Не обязательно, чтобы ящиков было ровно столько, сколько нужно по документам – завхоз хорошо знает, что проверяющий не будет спрашивать, почему ящиков слишком много. Проверяющий просто прикажет отдать "лишние" ящики ему. Поэтому, необходимо, чтобы проверяющему показалось, что на складе как можно меньше ящиков (но достаточно для документов), иначе, отдав "лишние" ящики, завхоз ещё больше уменьшит свой и так скудный запас продуктов. Кроме того, если придётся отдавать "лишние" ящики, то для этого должно хватить тех ящиков, которые есть – лишние продукты взять неоткуда.
Склад имеет форму прямоугольника размера `n\ times\ m`, разделённого на квадратные клетки. Каждая клетка либо содержит ящик с продуктами, либо пустая. Ходить на складе можно только по пустым клеткам, так как ящики достаточно высокие, и из-за них ничего не видно. Склад имеет единственный вход, находящийся на левой стороне левой верхней клетки.
Вы можете вывести любой способ расстановки ящиков, который минимизирует количество "лишних" ящиков. Кстати, не обязательно расставлять по складу все имеющиеся в наличии ящики – при необходимости ящики можно спрятать от инспектора на другом складе.
Первая строка ввода содержит четыре целых числа через пробел: `n`, `m` (`1\ ≤\ n,\ m\ ≤\ 1000`), `a`, `b` (`0\ ≤\ b\ ≤\ a\ ≤\ n*m`) – размеры склада, количество ящиков, которое должно быть по документам, и количество ящиков, которое есть на самом деле, соответственно.
Если инспекцию обмануть невозможно, выведите одно слово FAIL. Иначе выведите `n` строк по `m` символов в каждой – расположение ящиков. Символ '#' обозначает клетку с ящиком, символ '.' – пустую клетку.

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

2 2 3 2

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

.#
#.

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

3 4 12 5

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

#...
....
....

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

2 5 4 1

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

FAIL
loading