Problem A : GUNDU MELOMPAT Disediakan suatu permainan

advertisement
Problem A : GUNDU MELOMPAT
Disediakan suatu permainan sendirian berbasis papan (solitaire board game) bernama ‘Gundu
Melompat’.
Deskripsi permainannya adalah sebagai berikut:

Pada papan permainan yang berbentuk bujur sangkar akan ada sejumlah lubang kosong.
Pada setiap permainan akan ditentukan lubang mana saja yang akan dipakai (bisa ditempati
gundu) dan yang tidak.
Pada setiap awal permainan, sejumlah gundu akan diletakkan pada lubang di papan dengan
pola tertentu. Setiap lubang hanya bisa memuat satu gundu.
Permainan berjalan dengan cara memindahkan gundu dengan harus melompati satu gundu
di sebelahnya secara horizontal atau vertical. Lompatan diagonal tidak diperkenankan.
Gundu yang telah terlompati diambil dan dikeluarkan dari papan.
Permainan akan berakhir jika di papan sudah tidak ada lagi gundu yang bisa dilompati



Tugas anda adalah menentukan jumlah gundu minimal yang mungkin yang akan tersisa di akhir
untuk setiap permainan.
Input
Baris pertama dari input merepresentasikan jumlah test case.
Setiap test case akan diawali dengan baris yang berisi dua integer P dan G yang dipisahkan dengan
spasi. P menunjukkan jumlah lubang pada setiap sisi papan, dimana 0 < P <= 8. G menunjukkan
jumlah gundu yang digunakan dalam permainan tersebut.
P baris berikutnya menunjukkan posisi lubang yang akan dipakai, lubang yang tidak dipakai, dan
posisi awal dari gundu. Lubang yang akan dipakai ditandai dengan ‘-’. Lubang yang tidak dipakai
ditandai dengan ‘x’. Posisi awal gundu ditandai dengan ‘o’, yang otomatis juga merupakan lubang
yang terpakai.
Setiap test case akan diakhiri dengan baris yang berisi angka 0
Output
Untuk setiap test case, output terdiri dari 1 integer yang merepresentasikan jumlah gundu minimal
yang mungkin yang tersisa pada akhir permainan.
Sample Input
3
3
x
o
x
0
4
o
0
5
3
o x
o - x
6
o
o
o
6
o
x
o
x
x
o
x
0
–
–
o
x
x
o
o
–
–
–
–
o
x
x
o
–
x
Sample Output
2
1
3
Download