4. мозаика
ограничение времени 1 секунда
ограничение памяти 64mb
ввод стандартный ввод или input.txt
вывод стандартный вывод или output.txt
мальчик вася хочет стать успешным программистом, но при этом много времени посвящает компьютерным играм. поэтому он не может вовремя делать и часто засыпает на уроках. однажды родители в наказание за плохие отметки в школе лишили васю компьютера и смартфона. тогда он решил скоротать время, собирая мозаику. мозаика представляет собой прямоугольное поле, разбитое на квадратики единичного размера. поле имеет ширину n и длину m. мозаика частично уже сложена, поэтому васе нужно разложить оставшиеся кусочки. ему сделать это. каждый кусочек представляет собой квадрат 3x3, в котором некоторые клетки пустые. его можно поворачивать, но нельзя переворачивать.
формат ввода
в первой строке заданы три целых числа n, m и k (3 ≤ n, m ≤ 8, 1 ≤ k ≤ 10). в последующих n строках идет описание поля. каждая строка имеет длину m и состоит из символов '#' и '.', которые обозначают занятую и пустую клетки соответственно.
далее идет k блоков по три строки описание кусочков. каждый кусочек описывается тремя трехсимвольными строками, содержащими символы '#' и '.', которые обозначают занятую и пустую клетки соответственно.
формат вывода
выведите сложенную мозаику так, чтобы в пустых клетках стояли цифры, соответствующие номеру кусочка, который будет располагаться в этой клетке. кусочки нумеруются с нуля в том порядке, в котором они заданы.
пример 1
ввод вывод
5 5 3
###..
##.##
#
##
##
###
###
###
.#.
.##
..#
###22
##1##
#0002
#000#
#000#
пример 2
ввод вывод
3 3 1
#.#
.##
..#
###
.#.
#0#
000
0##
2. Клод Шеннон - основатель теории информации .Приложил свои руки в инженерии, кибернетики, электротехнике, математике и теории информации. Разработал теорию связи кодирования. Создал промышленную радиоуправляемую игрушку , ввёл понятие "бит" - единица измерения. Отмечен многими наградами и премиями, и Нобелевской премией.
3. Тедом Нельсоном в 1965 году
4. Тим Бернерс-Ли в 1980 году
Begin
Write('N = ');ReadLn(N);
Write('Искомые числа:');
For N:= 1 to N do
Begin
B:=N;
k:=1;
// перед каждой проверкой k:=1
// и если число не делится на любую из своих цифр, то k:=0
While B > 0 do
Begin
if B mod 10 = 0 then k:=0
// B mod 10 - это остаток от деления B на 10
// то есть, например, 123 mod 10 = 3
else if N mod (B mod 10) > 0 then k:=0;
B:=B div 10
// целая часть от деления B на 10
// 123 div 10 = 12
End;
if k = 1 then Write(' ',N)
End;
End.