Школа программиста

Забыли пароль?
[задачи] [курсы] [олимпиады] [регистрация]
Логин:   Пароль:    
Скрыть меню
О школе
Правила
Олимпиады
Фотоальбом
Гостевая
Форум
Архив олимпиад
Архив задач
Состояние системы
Рейтинг
Курсы
Новичкам
Работа в системе
Курсы ККДП
Дистрибутивы
Статьи
Ссылки


 

Сапер

(Время: 1 сек. Память: 32 Мб Сложность: 35%)

Всем известна игра «Сапер», в которую играет один человек. Игра присходит на клетчатом поле размером N×M (N строк и M столбцов). Некоторые клетки поля содержат мины (не более одной), остальные клетки пусты. В пустых клетках записано либо число от 1 до 8 – количество мин в соседних с ней клетках, либо ничего не написано, если в соседних клетках мин нет. Соседние клетки имеют хотя бы одну общую вершину. Такое поле с расположенными на нем минами и числами можно представить в виде карты.

В начале игры все клетки поля закрыты. Игрок за один ход может открыть какую-нибудь клетку. После этого игроку показывается содержимое этой клетки, и если там мина, он проигрывает и игра завершается. В противном случае игра продолжается. Цель игры – открыть все клетки, в которых нет мин.

Есть рисунок на клетчатой бумаге определенного размера N×M, где некоторые клетки закрашены в черный цвет, а некоторые оставлены белыми. Требуется по данному рисунку сделать соответствующее ему поле для игры в «Сапера» по следующему правилу: если на рисунке клетка покрашена в черный цвет, то на этом месте должна быть либо мина, либо число от 1 до 8, если же клетка оставлена белой, то на игровом поле она должна быть пустой.

Напишите программу, которая по заданному рисунку составляет карту для игры в «Сапера» по правилам, приведенным выше.

Входные данные

Входные данные В первой строке входного файла INPUT.TXT содержатся целые числа N и M (1 ≤ N, M ≤ 100) – количество строк и столбцов соответственно. Далее идет таблица из N строк, по M чисел в каждой строке, задающая рисунок. Каждое число в таблице равно 0 или 1. Число 0 означает, что соответствующая клетка на рисунке белая, 1 – черная. Числа в строках разделяются пробелами.

Выходные данные

В выходной файл OUTPUT.TXT выведите N строк по M символов – карту игрового поля, j-ый символ i-ой строки должен содержать символ «*» (звездочка) если в клетке (i,j) стоит мина, цифру от 1 до 8, если в этой клетке стоит соответствующее число, либо «.» (точка), если клетка (i,j) пустая. Если построить поле, соответствующее рисунку, невозможно, выведите «No solution».

Примеры

INPUT.TXTOUTPUT.TXT
13 4
0 1 1 1
1 1 1 1
1 1 0 0
.1*1
1211
*1..
23 3
1 0 1
0 1 0
1 0 1
No solution

Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!

[Обсуждение] [Все попытки] [Лучшие попытки]


 Язык программирования C++
 Решение олимпиадных задач
 Региональные олимпиады
 Книги Фёдора Меньшикова
 ЕГЭ по информатике
 Тренировочные олимпиады
 Личные олимпиады
 Командные олимпиады
 Первая командная олимпиада
 Вторая командная олимпиада
 Третья командная олимпиада
 Четвертая командная олимпиада
 Пятая командная олимпиада
 Шестая командная олимпиада
 A. Алфавит для слепых
 B. Квадраты
 C. Офицеры
 D. Выражение
 E. Сапер
 F. Человек Рассеянный
 G. Строительство города
 H. Безопасный пароль

Красноярский краевой Дворец пионеров, (c)2006 - 2025, ИНН 246305493507, E-mail: admin@acmp.ru



Внешние аккумуляторы MagSafe