Eğer bir yığını krep kadar kalın bu tarafı aşağı çalıştıramaz üzerine şurup bir topak içeren bir plaka. Her krepin her iki yüzü de en azından şurupa dokunana kadar yemek yemekten hoşlanmayacaksınız, ama şu anda üst krepin sadece bir yüzü.
Şurubun asla bir krepten bile ıslanmayacağını biliyorsunuz, ancak iki krep arasındaki yüz yüze temas yoluyla süresiz olarak aktarılabiliyor. Bir krepin bir yüzüne şurup dokunduktan sonra, sonsuza dek şurupta kaplanmış olarak kabul edilir ve şurup kaplanmış herhangi bir şurupsuz kaplanmış yüz yapacaktır. Şurubun levhanın üst tarafına ve üst tarafına aktarılması da mümkündür.
Bir veya daha fazla krepin altına bir spatula takarak ve tam olarak krep sıralamada yapıldığı gibi, üzerine çevirerek her krep yüzünü şurupla kaplamaya devam edin . (Ne yazık ki bu spatula şuruplara karşı dayanıklıdır ve şurup yüzlerine dokunarak şurubu dağıtmaya yardımcı olmaz.) Ne yazık ki, gözleme yüzlerinin şuruplara dokunduğu kederi kaybedersiniz, ancak yaptığınız kâğıtları hatırlarsınız.
Geçmiş yazıların göz önüne alındığında, kreplerin hepsinin şurupla kaplı olup olmadığını belirleyebilir misin?
Meydan okuma
Krep sayısı için N pozitif tamsayı alan bir program ve şu ana kadar yaptığınız çeviriler için pozitif tamsayıların listesini (tümü <= N) yazın. Listedeki her sayı, çevrilen krep sayısını temsil eder. Krep kaplanırsa bir aldatma değeri ve eğer değilse bir sahte değer verin. ( truthy / falsy tanımı )
Giriş, stdin veya komut satırından gelmeli ve çıkış stdout'a (veya en yakın alternatiflere) gitmelidir. Girişiniz biraz fazladan biçimlendirme gerektiriyorsa sorun olmaz: örneğin liste [1, 1, 2, 2]
yerine 1 1 2 2
.
Örnekler
N = 2 olduğunu varsayalım, bu yüzden bir tabağın üzerinde iki şurup var, üstteki şurupla başlıyoruz.
Eğer liste ise 1 1 2 2
, bu demek oluyor ki ...
- üst krepi çevirin - alt krepin üst yüzünü kaplayın
- üst kısmı tekrar çevirin - üst krepin orijinal alt yüzünü kaplayın
- ikisini de çevirin - plakanın kaplanması
- ikisini de yeniden çevirin - alt gözleme parçasının orijinal alt yüzünü kaplayın
Dört yüzün tamamı kaplandığından, çıktı True
veya gibi bir şey olur 1
.
Eğer liste ise 1 2 2 1
, bu demek oluyor ki ...
- üst krepi çevirin - alt krepin üst yüzünü kaplayın
- ikisini birden çevirin - hiçbir şeyi kaplama
- ikisini de ters çevirin - hiçbir şeyi kaplama
- üst kısmı tekrar çevirin - üst krepin orijinal alt yüzünü kaplayın
Plakaya temas eden yüz hala şurupsuz olduğundan, çıktı False
veya benzeri bir şey olacaktır 0
.
notlar
- Kapak listesi isteğe bağlı olarak büyük olabilir ve boş olabilir, bu durumda çıktı yanlış olur.
- Plaka bir şurup taşıyıcı görevi görür ancak kaplanıp kaplanmaması önemli değildir. (Aslında herhangi çevirme çözüm irade ceket plaka dokunduğu gözleme yüz bakılmaksızın kaplanmış, ancak gerektiğinden.)
- Plaka çevrilemez.
- Bu kreplerin konuşacak tarafı olmayan, yalnızca iki zıt yüzü olan birim diskler olduğunu varsayabilirsiniz .
puanlama
Bu kod golfü. En kısa çözüm bayt kazanır.
Put syrup on the pancakes!
:;)