eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Ліва кнопка миші

Ліва кнопка миші

Мінер є досить популярною грою в операційній системі Windows. Мета гри полягає у пошуку мін і маркуванні їх положення. Ви розміщуєте клацанням правої кнопки миші невеличкий прапорець у клітинці, в якій на Вашу думку розміщена міна. Клацанням лівої кнопки миші можна відкрити клітинку, у якій на Вашу думку міни немає. Якщо у цьому квадраті все ж таки розміщена міна, то вона взривається і Ви програєте. У протилежному випадку є два варіанти. У першому випадку відкривається число від \textbf{1} до \textbf{8}, яке показує сумарну кількість мін, що оточують дану клітинку. Наприклад, якщо Ви натиснули ліву кнопку миші і в квадраті висвітилось число \textbf{8}, то це означає, що дана клітинка ооточена \textbf{8} клітинками з мінами, тобто всі \textbf{8} сусідніх клітинок містять міни. У другому випадку, якщо навколо цієї клітинки немає сусідніх мін, то крім цієї клітинки відкриваються і всі сусідні. Якщо в деяких з сусідніх клітинок також немає оточуючих мін, то процес відкриття сусідніх клітинок продовжується. Тобто фактично комп'ютер допомагає Вам відкрити всі вільні від мін сусідні клітинки. Мета гри полягає у відкритті всіх вільних від мін клітинок. Том дуже захоплюється цією грою, але, на жаль, його права кнопка миші пошкоджена і він може користуватись лише лівою кнопкою миші. Для того щоб уникгути можливого подальшоего пошкодження миші він хоче завершити гру натиснувши на ліву кнопку миші мінімальну кількість разів. Знаючи початкове положення у грі Вам необхідно визначити цю саму мінімальну кількість натиснень лівою кнопкою миші. \includegraphics{https://static.e-olymp.com/content/d6/d634f87a247208310f87067adb84df3e8659cac6.jpg} \InputFile Перший рядок містить ціле число, яке вказує кількість тестових випадків \textbf{T} (\textbf{T} ≤ \textbf{12}). Кожен тестовий випадок починається рядком, що містить ціле число \textbf{n} (\textbf{5} ≤ \textbf{n} ≤ \textbf{9}) - розмір мінного поля \textbf{n}×\textbf{n}. Кожен з наступних \textbf{n} рядків містить по \textbf{n} символів M_\{ij \}(\textbf{1} ≤ \textbf{i}, \textbf{j} ≤ \textbf{n}), \textbf{M_ij} позначає поточний статус клітинки у рядку \textbf{i} та стовбці \textbf{j}, де '\textbf{@}' позначає міну, '\textbf{0}-\textbf{8}' позначають сумарні кількості мін в оточуючих клітинках, цифрою '\textbf{0}' позначені клітинки, по сусідству з якими мін немає. Гарантується, що всі положення коректні. \OutputFile Для кожного тестового випадку у окремому рядку вивести повідомлення про номер тесту (починаючи з \textbf{1}) і далі мінімальну кількість натиснень лівої кнопки миші (див. приклад вихідних даних).
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
1
9
001@11@10
001111110
001111110
001@22@10
0012@2110
221222011
@@11@112@
2211111@2
000000111
Вихідні дані #1
Case 1: 24