Temukan Santa dan rusa di adegan yang ramai.
Memasukkan
Input akan di STDIN dan akan menjadi jumlah variabel baris karakter yang sama, tetapi variabel, panjang. Jika Santa (diwakili oleh karakter S) ada dalam adegan, karung hadiahnya (diwakili oleh karakter P) akan berada di salah satu posisi yang berdekatan dengannya (horizontal, vertikal atau diagonal). Rusa-nya (masing-masing diwakili oleh karakter R) semua akan berada dalam kotak 5x5 di sekitarnya. Jika seorang Smuncul dalam adegan yang tidak memiliki sekarung hadiah, atau tidak disertai oleh setidaknya 4 rusa, maka itu bukan Santa.
Keluaran
Adegan dibersihkan dari semua kebingungan (semua karakter non-Santa, non-hadiah, non-rusa diganti dengan spasi), menunjukkan Santa, karung hadiahnya, dan rusa-nya - semua karakter lain harus diganti dengan spasi. Jika Santa dan rusa kutubnya tidak ada di tempat kejadian, hasilnya tidak berubah. Dijamin hanya akan ada satu solusi, jadi tidak akan pernah ada lebih dari satu Santa yang valid dan dia tidak akan pernah membawa lebih dari satu karung hadiah.
Contohnya
Dalam contoh ini saya hanya menggunakan *karakter untuk membuatnya mudah untuk melihat S, Pdan Rkarakter, tetapi program Anda harus dapat menangani setiap karakter ascii dari !ke `(33-96). Saya telah meninggalkan karakter huruf kecil ke atas untuk menghindari kebingungan.
Memasukkan:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Output: (abaikan titik, mereka harus memaksa halaman untuk menampilkan garis kosong)
.
.
.
R
P
S
R
R R
.
.
.
.
Input: (tidak cukup rusa)
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Keluaran:
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Input: (tidak ada karung hadiah)
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Keluaran:
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Input: (hadiah tidak cukup dekat)
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
Keluaran:
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
Input: (salah satu rusa tidak dalam kotak 5x5 di sekitar Santa)
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
Keluaran:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
Tes Script
Seperti pada beberapa pertanyaan saya di masa lalu, saya sekali lagi membantai beberapa skrip uji yang awalnya dibuat oleh Joey dan Ventero untuk memberikan beberapa kasus uji untuk pertanyaan ini:
Pemakaian: ./test [your program and its arguments]
Versi teks tes untuk referensi: Teks polos
Hadiah
Setiap entri yang saya dapat verifikasi yang memenuhi spesifikasi, lulus tes dan jelas telah mencoba golf akan menerima upvote dari saya (jadi tolong berikan instruksi penggunaan dengan jawaban Anda). Solusi terpendek pada akhir 31/12/2013 akan diterima sebagai pemenang.