Araştırmacılar son zamanlarda sonsuz bir petek tarlasında yaşayan ilginç bir arı kolonisi keşfettiler:
Her hücrede arı olabilir veya olmayabilir. Aslında, bu canlıların yaşamları biraz ... kaotik görünüyor. Bir koloninin her zaman aşağıdaki kalıpla başladığı hesaplanabilir:
(Arı çizdiği Emmanuel BOUTET ile ortak bir havuz deposundan . Bu petek-ve-arı görüntüsü böylece altında yayınlanan CC-by-SA . Grumbles )
Bundan sonra arının yaşam döngüleri sözde nesillere ayrılır. Her nesil yaşlı arılar ölür ve yenileri yumurtadan çıkar ve esas olarak hücrelerinin komşularına bağlıdır:
- Bir arının ikiden az komşusu varsa, yalnızlık nedeniyle ölür.
- Bir arının üçten fazla komşusu varsa, aşırı kalabalık nedeniyle ölür.
- Bir hücrenin komşu hücrelerde iki, üç veya dört canlı arısı varsa, yeni nesil orada yeni bir arı yumurtadan çıkar.
Ölmekte olan arılar bir jenerasyonun sonuna kadar ölmezler, bu nedenle hala gelecek nesilde arıların yumurtadan çıkabileceği çevre hücreleri etkilerler.
Artık böyle bir koloninin nasıl çalıştığını bildiğimize göre, herhangi bir sayıda kuşak boyunca simüle edebiliriz.
Giriş
Giriş, bir satır sonu ile sonlandırılan standart girişte verilen tek bir N sayısıdır . 0 ≤ N ≤ 150. Bu, simüle edilecek nesillerdir.
Çıktı
Çıktı, standart çıktıda tek bir sayıdır ve isteğe bağlı olarak N nesillerinden sonra yaşayan arıların sayısını temsil eden tek bir satır sonu gelir .
Standart hatadaki ek çıktı yoksayılır.
Örnek girişler
0
5
42
100
Örnek çıktılar
6
44
1029
5296
Kazanma koşulu
Golf alışıldığı gibi en kısa kod kazanır. Beraberlik durumunda, önceki çözüm kazanır.
Test senaryoları
Özdeş test senaryoları içeren iki test komut dosyası vardır:
Her iki durumda da çağırma: <test script> <my program> [arguments]
örn. ./test ruby beehive.rb
Veya ./test.ps1 ./beehive.exe
.
151 yerine sadece 22 test olduğunu biliyorum (esas olarak çözümler genellikle oldukça yavaştır). Lütfen görevi çözmek yerine tam test senaryolarını yerleştirmekten kaçının. Bu komut dosyaları, bir değişikliğin programın doğru şekilde davranmasına neden olup olmadığını sınamanız için kolaylık sağlar; kodunuzu belirli test senaryolarına uyarlayabileceğinizden değil.
Başka bir not
Bu görev 2011-W24 boyunca üniversitemde düzenlenen bir golf yarışmasının bir parçasıydı. Yarışmacılarımızın puanları ve dilleri şöyleydi:
- 336 - C
- 363 - C
- 387 - C
- 389 - Haskell
- 455 - C
Kendi çözümümüz
- 230 - Yakut