Language:

English
Russian

Практикум по программированию

Для участников:
Регистрация  ||   Вход
Список соревнований
Вы не вошли в систему! Вход или регистрация.

Miner

Time limit:1 sec.
Memory limit: 1048576 KByte

Маленькая девочка Виолетта уже несколько месяцев ходит на кружок по программированию. Недавно она решила, что, как и любой другой программист, она обязательно должна написать игру. В результате ночи разработки к утру получилась игра, которую Виолетта назвала «Miner».

Правила игры довольно просты. Цель игры – поиск мин на двухмерном квадратном поле. Нажав на любой клетке поля правую кнопку мышки, вы размещаете в этой клетке флажок, означающий, что, по вашему мнению, в этой клетке поля находится мина. Нажав левую кнопку мышки, можно открыть клетку, в которой (по вашему мнению) мины нет. Если в этой клетке была мина, то вы проигрываете. В противном случае в клетке либо отображается число от 1 до 8, показывающее, сколько мин находится вокруг данной клетки, либо, если вокруг данной клетки мин нет, открывается не только данная клетка, но и все ещё не открытые соседние. Если среди открывшихся клеток также есть такие, вокруг которых нет ни одной мины, то открываются и все их соседние свободные клетки, и так далее. Цель игры – открыть все свободные клетки поля.

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

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

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

Первая строка входных данных содержит натуральное число N (5 ≤ N ≤ 1000) – размер поля. Каждая из последующих N строк содержит по N символов, обозначающих статус клетки. Символ '@' обозначает мину, символ '.' – отсутствие мины.

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

Выведите одно число – минимальное число нажатий левой кнопки мышки

Пример

Входные данные
9
...@..@..
.........
.........
...@..@..
....@....
.........
@@..@...@
.......@.
.........
Выходные данные
24

Условия всех задач турнира (pdf)

© Copyright ВоГУ, АВТ, Носов Д.А., Смоленцев К.Н.