pengantar
Para pegolf kode yang berpengetahuan mempersiapkan kami untuk banjir kiamat . Daerah yang berisiko dievakuasi, dan penduduk pindah ke tempat tinggi.
Kami meremehkan banjir (atau mungkin ada bug dalam kode @ user12345). Beberapa daerah dataran tinggi dengan cepat mendekati permukaan laut. Dinding harus didirikan untuk memastikan kelangsungan hidup perkemahan yang sekarang berpenduduk padat. Sayangnya, pemerintah memiliki persediaan tembok yang terbatas.
Masalah
Skenario kiamat kami dijelaskan oleh dua angka pada satu baris, ndan m. Mengikuti garis itu adalah ngaris dengan mnilai per baris, hanya dipisahkan oleh satu spasi. Setiap nilai akan menjadi satu dari empat karakter.
xTidak bisa dilewati. Air tidak bisa mengalir di sini. Dinding tidak dapat didirikan di sini.-Tidak stabil. Air dapat mengalir melalui ini di sini. Dinding tidak dapat didirikan di sini..Stabil. Air bisa mengalir lewat sini. Dinding dapat didirikan di sini.oPerkemahan. Air bisa mengalir lewat sini. Jika ya, semua orang mati. Dinding tidak dapat dibangun di sini.
Air akan mengalir dari semua tepi peta, kecuali jika tepinya tidak bisa dilewati atau dinding dibangun di atas ubin. Tulis program yang dapat menampilkan jumlah dinding minimum yang diperlukan untuk melindungi perkemahan.
Contoh Input
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
Contoh Output
3
Asumsi
- Air hanya mengalir secara orthogonal
- Perkemahan hanya ada sebagai satu blok yang berdekatan secara ortonagon per skenario
- Sebuah solusi akan selalu ada (walaupun mungkin membutuhkan banyak dinding)
- Perkemahan tidak dapat ditemukan di tepi, karena skenario kemudian tidak memiliki solusi
- 2
n<<16 - 2
m<<16 - Masukan dapat diberikan dari stdin, baca dari "city.txt", atau diterima sebagai argumen tunggal
Kode terpendek menang!