Anda diberi posisi dewan untuk permainan Go dan gerakan untuk bermain. Anda perlu menampilkan apakah perpindahan itu sah atau tidak, dan posisi dewan baru jika sah.
Penjelasan singkat tentang gerakan Go: permainan ini terdiri dari menempatkan potongan hitam dan putih ("batu") sebagai alternatif di tempat kosong di papan persegi. Set potongan-potongan dengan warna yang sama yang terhubung satu sama lain (4 arah) disebut kelompok. Tempat kosong di papan yang berdekatan dengan grup (juga 4 arah) dianggap sebagai "kebebasan" grup itu. Grup dengan 0 kebebasan ditangkap (dihapus dari papan). Suatu langkah yang akan menyebabkan kelompoknya sendiri ditangkap ("bunuh diri") adalah ilegal, kecuali jika ia menangkap satu atau lebih kelompok lawan (memperoleh kebebasan dalam proses sehingga tidak benar-benar ditangkap).
Bagi mereka yang berkepentingan, Anda tidak perlu berurusan dengan ko (dan superko), yaitu Anda dapat menganggap penangkapan ko adalah legal. Jika Anda tidak tahu apa artinya itu, cukup ikuti aturan di atas dan itu akan baik-baik saja.
Input: angka n antara 2 dan 19 (inklusif) mewakili ukuran papan, diikuti oleh n baris n angka antara 0 dan 2 (inklusif) mewakili posisi papan, diikuti oleh 3 angka yang dipisahkan oleh spasi, mewakili gerakan untuk membuat. Dalam posisi papan, 0 berarti tempat kosong, 1 berarti batu hitam dan 2 berarti batu putih. Langkah memberi kolom, baris dan warna (1 atau 2) dari batu ke tempat. Kolom dan baris berbasis 0, mulai dari 0 hingga n-1 (inklusif) dan dihitung dalam urutan yang sama dengan input papan.
Anda dapat mengasumsikan bahwa posisi dewan yang diberikan adalah legal (semua grup memiliki setidaknya satu kebebasan).
Keluaran: baris yang mengandung 1 atau 0 (atau benar / salah jika Anda suka) jika perpindahan itu legal atau tidak, diikuti (hanya dalam kasus perpindahan legal) oleh posisi dewan baru dalam format yang sama dengan input.
Nilai: Jumlah byte dari kode sumber lengkap, lebih kecil lebih baik. Denda tambahan 20% untuk penggunaan karakter non-ascii, dan denda tambahan 20% jika kode Anda tidak dapat diuji di Linux menggunakan perangkat lunak yang tersedia secara bebas.
Aturan: Tidak ada koneksi jaringan dan tidak ada perpustakaan pihak ketiga. Program Anda harus menggunakan input standar dan stream output, atau standar yang setara untuk bahasa pemrograman Anda.
Contoh:
1) Input:
2
10
01
1 0 2
Output:
0
2) Input:
2
10
11
1 0 2
Output:
1
02
00
3) Input:
5
22122
22021
11211
02120
00120
2 1 1
Output:
1
00100
00101
11011
02120
00120
4) Input:
6
000000
011221
121121
122221
011110
000000
4 0 1
Output:
1
000010
011221
121121
122221
011110
000000
sumber
6 000000 011221 121121 122221 011110 000000 4 0 1
Output: 0. Ditambahkan sekarang sebagai contoh 4.5 22100 20211 12211 12120 01120 1 1 2
Output harus 0.Python (
9121004)Berjalanlah melalui: masukan parse, periksa apakah gerakan ada di tempat kosong, buat bergerak, init "grup" grid, sederhanakan / perkecil grid grup dengan memeriksa warna batu adjacant (s = 0) dan terus mengulangi sampai sepenuhnya diperkecil , periksa untuk kebebasan grup (s = 1), hapus batu lawan untuk grup tanpa kebebasan (s = 2), ulangi s = 0 dan s = 1, periksa bahwa semua grup pemain memiliki kebebasan, hasilkan kembali.
Ini mungkin dapat dipersingkat secara signifikan ...
ContohInteraktifberjalan:sumber