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

Корабли

Корабли

Наверное каждый, кто когда-либо учился в школе :) , знает, что есть игра, в которой двое игроков размещают какое-то множество кораблей листе бумаги в клеточку и попытаться уничтожить корабли друг друга, угадав их расположения. В нашей версии игры разрешено использовать вам и вашему оппоненту следующие семь моделей кораблей, расставляя их на прямоугольную сетку в соответствующих квадратах \includegraphics{https://static.e-olymp.com/content/ca/ca5fc07f886854db706566606a4db4986b2014a3.jpg} Каждый корабль на картинке занимает ровно четыре квадрата. Корабли можно поворачивать, но нельзя отзеркаливать. Гарантируется, что все корабли будут полностью размещены в пределах заданного прямоугольника, не перекрывать друг друга, и в то же время, касание другого корабля или его границы допускается. Можете считать, что мы находимся в середине игры и несколько квадратов уже раскрыты. Вам будет предоставлено ​​прямоугольную сетку с информацией о квадратах, представляющей текущее положение в игре позиций судов противника. Каждый квадратик отмечен одним из следующих символов: \begin{itemize} \item '\textbf{x}' если в указанной клетке находится часть корабля \item '\textbf{o}' если ни один корабль не находится в указанной клетке \item '\textbf{.}' если эта клетка до сих пор не раскрыта \end{itemize} Имея эту информацию, вы должны решить, можно ли определить размещение всех остальных частей кораблей ("\textbf{х}"), совершив при этом не более чем один промаха, то есть, можете ли вы раскрыть все клетки с символом "\textbf{.}", не получив при этом более одного ответа о промахе ("\textbf{о}"), для того, чтобы раскрыть все клетки, которые будут обозначаться символом "\textbf{х}". По сути это означает, что вы имеете право совершить один промах ("\textbf{о}"), если после этого решение становится уникальным. \InputFile Входной файл содержит несколько игровых ситуаций. Каждый тест начинается со строки, содержащей два целых числа \textbf{w} и \textbf{h}. Они определяют ширину и высоту прямоугольника игры, при этом \textbf{2} ≤ \textbf{w}, \textbf{h} ≤ \textbf{16}. Каждая из последующих \textbf{h} строк содержит строку из \textbf{w} символов. Каждый из этих символов '\textbf{x}', '\textbf{o}' или '\textbf{.}', в зависимости от состояния соответствующей клетки. Пустая строка отделяет каждую новую игру от предыдущей. Входной файл заканчивается данными с \textbf{w = 0} и \textbf{h = 0}. Эта игру обрабатывать не нужно. \OutputFile Для каждого теста необходимо сначала вывести строку, содержащую номер игры (см. пример выходных данных), а затем строку, содержащая либо '\textbf{yes.}' (если вы можете определить все '\textbf{x}' совершив не более одного промаха), либо '\textbf{no.}' (если вы не можете определить все '\textbf{x}' без совершения, по меньшей мере, двух промахов). Между разными играми необходимо вывести пустую строку.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
10 10
........oo
oooooxoooo
oxooxxxo..
xxoooooo..
xoooxooo.x
ooxxxxoooo
oooooxxoox
ooooooxoox
ooooooooxx
oooooooooo

0 0
Выходные данные #1
Game #1
yes.