Giriş
Bilgili kod golfçüler bizi kıyamet seli için hazırladı . Risk altındaki alanlar boşaltıldı ve nüfus yüksek yerlere taşındı.
Seli hafife aldık (veya belki de @ user12345'in kodunda bir hata vardı). Bazı yüksek zemin alanları deniz seviyesine hızla yaklaşmaktadır. Şimdi yoğun nüfuslu kampların hayatta kalmasını sağlamak için duvarlar inşa edilmelidir. Ne yazık ki, hükümetin sınırlı bir duvar arzı var.
Sorun
Kıyamet günü senaryomuz, tek bir satırda iki sayı ile n
ve m
. Bu satırın ardından satır başına değer n
içeren m
, yalnızca tek bir boşlukla ayrılmış satırlar bulunur . Her değer dört karakterden biri olacaktır.
x
Geçilmez. Burada su akamaz. Burada duvarlar yapılamaz.-
Kararsız. Buradan su akabilir. Burada duvarlar yapılamaz..
Kararlı. Su buradan akabilir. Burada duvarlar inşa edilebilir.o
Encampment. Su buradan akabilir. Olursa, herkes ölür. Burada duvarlar inşa edilemez.
Kenar geçilmez olmadıkça veya karo üzerine bir duvar inşa edilmediyse, haritanın tüm kenarlarından su akacaktır. Bir yerleşimi korumak için gereken minimum duvar sayısını verebilecek bir program yazın.
Örnek Giriş
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
Örnek çıktı
3
Varsayımlar
- Su sadece dikey olarak akar
- Yerleşimler, senaryo başına yalnızca bir tek köşeli bitişik blok olarak bulunur
- Her zaman bir çözüm bulunacaktır (çok miktarda duvar gerektirse de)
- Senaryo daha sonra çözülmeyeceğinden, kampanyalar bir kenara yerleştirilemez
- 2
n
<<16 - 2
m
<<16 - Giriş, stdin'den sağlanabilir, "city.txt" den okunabilir veya tek bir argüman olarak kabul edilebilir.
En kısa kod kazanır!