Вступ
Знаючі гольфісти з кодом підготували нас до потопу досудного дня . Ділянки з ризиком були евакуйовані, а населення перемістилося на високий рівень.
Ми недооцінили повінь (можливо, в коді @ user12345 виникла помилка). Деякі надземні райони швидко наближаються до рівня моря. Стіни повинні бути встановлені для того, щоб забезпечити виживання нині густонаселених таборів. На жаль, уряд має обмежений запас стін.
Проблема
Наш сценарій судинного дня описується двома числами на одному рядку nта m. За цим рядком розташовані nрядки зі mзначеннями на рядок, розділені лише одним пробілом. Кожне значення буде одним із чотирьох символів.
xНепрохідний. Тут вода не може текти. Стіни тут не можна зводити.-Нестабільний. Тут може протікати вода. Стіни тут не можна зводити..Стабільний. Тут може текти вода. Стіни тут можна спорудити.oОсередок. Тут може текти вода. Якщо це станеться, всі гинуть. Стіни тут не можна будувати.
Вода буде надходити з усіх країв карти, якщо тільки край не є непрохідним або не побудована стіна на плитці. Напишіть програму, яка може вивести мінімальну кількість стін, необхідну для захисту огородження.
Приклад введення
6 7
x . . x x x x
x . . x - - x
x . x x - - x
x . o o o - .
x . o o o - .
x x x x x x x
Приклад Вихід
3
Припущення
- Вода тече лише ортогонально
- Осередки існують лише як один ортогонально суміжний блок за сценарієм
- Рішення завжди буде існувати (хоча воно може вимагати великої кількості стін)
- Огородження не можуть бути розташовані на межі, оскільки сценарій тоді не мав би рішення
- 2
n<<16 - 2
m<<16 - Введення може бути надано з stdin, прочитане з "city.txt" або прийняте як єдиний аргумент
Найкоротший код виграє!