Oyun BattleBlock Theatre zaman zaman Lights Out genelleştirilmiş bir versiyonu olan bir bulmaca içerir . Her biri çubuklarla birlikte 1 ile 4 arasında bir seviye olduğunu belirten üç bitişik bloğunuz var, örneğin:
|
||||
||
Bir bloğa dokunursanız, bu blok ve herhangi bir bitişik blok seviyesini yükseltir (4'ten 1'e geri sarma). Bulmaca, her üç blok da aynı seviyeyi gösterdiğinde çözülür (hangi seviyenin önemi yoktur). Bloklara dokunma sırası önemli olmadığından, her bloğa ne sıklıkta dokunduğuna göre bir çözüm belirtiriz. Yukarıdaki giriş için en uygun çözüm 201
:
| --> || --> ||| |||
|||| | || |||
|| || || --> |||
Oyun bazı bloklar için tüm konfigürasyonlar çözülemese de, herhangi bir sayıda bloğu çok kolay bir şekilde genelleştirir.
Meydan okuma
Bir dizi blok seviyesi göz önüne alındığında, bulmacayı çözmek için her bloğa ne sıklıkta dokunulması gerektiğini döndürün. Örneğin yukarıdaki örnek sonuç olarak verilebilir 142
ve 201
sonuç olarak verilebilir . Çözüm yoksa, tüm olası çözümlerden, örneğin boş bir dizgiden ayırt edilebilen, tutarlı bir çıktı alın -1
.
Bir işlev veya program yazabilir, STDIN, komut satırı argümanı veya işlev bağımsız değişkeni, uygun herhangi bir liste veya dize biçiminde girdi alabilir ve benzer şekilde bir dönüş değeri aracılığıyla veya STDOUT'a yazdırarak çıktı alabilirsiniz.
Kodunuz, makul bir makinede bir dakika içinde tüm test senaryoları için doğru sonuçları döndürmelidir. (Bu tamamen katı bir sınır değildir, bu nedenle çözümünüz bir dakika on saniye sürüyorsa, bu iyi, ancak 3 dakika sürüyorsa, öyle değil. İyi bir algoritma bunları saniyeler içinde kolayca çözecektir.)
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Örnekler
Çözümler benzersiz değildir, bu nedenle farklı sonuçlar alabilirsiniz.
Input Output
1 0
11 00
12 No solution
142 201
434 101
222 000
4113 0230
32444 No solution
23432 10301
421232 212301
3442223221221422412334 0330130000130202221111
22231244334432131322442 No solution
111111111111111111111222 000000000000000000000030
111111111111111111111234 100100100100100100100133
412224131444114441432434 113013201011001101012133
Bildiğim kadarıyla, blok sayısının 0 mod 3 veya 1 mod 3 olduğu her giriş için tam olarak 4 çözüm var ve 2 mod 3 olduğu 0 veya 16 çözüm var.