Bu meydan okuma Layerz oyununa dayanmaktadır.
Stdin'de veya işlev bağımsız değişkeni olarak, her hücrenin boşluk içerdiği 2B dikdörtgen hücre dizisi verildiğinde (penaltı olmadan boşluklar yerine 0'lar kullanmayı seçebilirsiniz), 1, a 2, 3 veya 4 ; boş olmayan her hücre tam olarak bir bölge içerecek şekilde geçerli bölgelere (aşağıda tanımlandığı gibi) bölmenin bir yolunu bulun. Sonra, makul bir biçimde bulunan çözümü çıktı. Çözüm yoksa, çıktı üretmeden durdurun veya tek bir falsey değeri verin ve ardından durdurun.
Aşağıdakilerden herhangi biri geçerli bir bölge oluşturur:
- 1 içeren tek bir hücre
- 2 ve tam olarak boş olmayan dikey komşularından birini içeren bir hücre
- Boş olmayan ortogonal komşularının 3 ve tam ikisini içeren bir hücre
- Boş olmayan ortogonal komşularının 4 ve tam olarak üçünü içeren bir hücre
Bu kod golf , bu yüzden bayt cinsinden en kısa geçerli cevap kazanır.
Bazı test örnekleri:
1. Oldukça önemsiz olan:
Ve çözüm, her bölge farklı bir renkte:
2. Daha ilginç bir tane
Bunun birden fazla çözümü var, ama işte bunlardan biri:
3. Herhangi bir çözümü olmayan boşluklar içeren daha küçük bir çözüm (ikisini "yakalamak için" ikisinden birini veya ikiden ikisini almak için üçünü kullanmanıza bağlı olarak, bitişik olmayan [ve dolayısıyla gruplandırılamayan] ikişer ikişer tek başına ikişer tane):
Bu ızgarada çözüm bulunmadığından, bu ızgara verildiğinde programınız çıktı üretmeden durmalıdır.
4. Bu (ilk 2 bir hücre sola kaydırılmış) bir çözüm var:
Çözüm:
(Sağ alt 2, 3'ü "yakalamak" için kullanılır)
5. Çünkü biz dört ayak ile bir test durumda gerekli:
Bir çözüm:
4
geçerli girdi ise s'yi de kapsamalıdır .