Noel Baba ve onun ren geyiği kalabalık bir sahnede bulun.
Giriş
Girdi STDIN'de olacak ve eşit, ancak değişken uzunluktaki karakterlerin değişken sayıda satırı olacaktır. Noel Baba (karakterin temsil ettiği S
) sahnede ise, onun karakteri (karakterin temsil ettiği P
) ona bitişik konumlardan birinde (yatay, dikey veya çapraz) olacaktır. Ren geyiği (her biri karakterin temsil ettiği R
), onu çevreleyen 5x5 kare içinde olacak. S
Sahnede bir hediye torbası olmayan veya en az 4 ren geyiği eşlik etmeyen bir görünüm ortaya çıkarsa , o zaman Noel Baba değildir.
Çıktı
Sahne, Noel'i, hediye çuvalını ve ren geyiğini gösteren tüm şaşkınlıktan (Noel Baba olmayan, hediye olmayan, ren geyiği olmayan karakterlerin yerini aldı) temizledi - diğer tüm karakterler boşluklarla değiştirilmelidir. Noel Baba ve ren geyiği sahnede değilse, değiştirmeden çıktı. Sadece bir çözüm olacağı garanti edilir, bu yüzden asla birden fazla geçerli Noel Baba olmayacak ve asla birden fazla hediye torbası taşımayacaktır.
Örnekler
Bu örneklerde sadece kullanıyorum *
kolay görmeye yapmak karakteri S
, P
ve R
karakterler, ancak programınız herhangi ASCII karakter işlemek gerekir !
için `
(96 33). Karışıklığı önlemek için küçük harfleri ve üstünü bıraktım.
Giriş:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Çıktı: (noktaları yoksay, sayfayı boş satırları göstermeye zorlarlar)
.
.
.
R
P
S
R
R R
.
.
.
.
Girdi: (yeterli ren geyiği)
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Çıktı:
***********
***********
***********
***********
******P****
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Girdi: (hediye torbası yok)
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Çıktı:
***********
***********
***********
*****R*****
***********
*****S*****
*****R*****
****R**R***
***********
***********
***********
***********
Girdi: (yeterince yakın değil sunar)
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
Çıktı:
***********
***********
***********
*****R*****
***********
*****S*P***
*****R*****
****R**R***
***********
***********
***********
***********
Girdi: (Noel Baba'nın etrafında 5x5 kare içinde olmayan ren geyiğinden biri)
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
Çıktı:
***********
***********
***********
*****R*****
******P****
*****S*****
*****R*****
****R******
*******R***
***********
***********
***********
Test Scriptleri
Geçmişteki bazı sorularımda olduğu gibi, bu soru için bazı test senaryoları sağlamak için bir kez daha Joey ve Ventero tarafından oluşturulan bazı test senaryolarını tekrar kullandım :
Kullanımı: ./test [your program and its arguments]
Referans için testlerin düz metin versiyonu: Düz metin
Ödüller
Spesifikasyonu karşıladığını doğrulayabildiğim, testleri geçtiğini ve golfte bazı girişimlerde bulunduğunu doğrulayabildiğim her giriş benden bir upvote alacak (bu yüzden lütfen cevabınızla birlikte kullanım talimatlarını sağlayın). 31/12/2013 sonuna kadar en kısa çözüm kazanan olarak kabul edilecektir.