연구원들은 최근 무한한 벌집 분야에 사는 흥미로운 꿀벌 식민지를 발견했습니다.
각 세포는 꿀벌을 수용 할 수 있습니다. 사실, 그 생물들의 삶은 약간 혼란스러워 보입니다. 식민지는 항상 다음 패턴으로 시작한다고 계산할 수 있습니다.
( Emimanuel Boutet 가 Wikimedia Commons 에 그린 비 .이 벌집 이미지는 CC-By-SA 에서 공개됩니다 . grumbles )
그 후 꿀벌의 수명주기는 소위 세대로 나뉩니다. 각 세대의 오래된 벌은 죽고 새로운 벌은 부화하며 주로 세포의 이웃에 달려 있습니다.
- 꿀벌이 이웃이 두 개 미만인 경우 외로움으로 인해 사망합니다.
- 꿀벌이 이웃이 3 명 이상이면 과밀로 인해 사망합니다.
- 세포가 이웃 세포에 2, 3 또는 4 개의 살아있는 벌을 가지고 있다면, 새로운 꿀벌이 다음 세대에 부화합니다.
죽어가는 꿀벌은 세대가 끝날 때까지 죽지 않으므로 다음 세대에 꿀벌을 부화시킬 수있는 주변 세포에 영향을 미칩니다.
이제 우리는 그러한 식민지가 어떻게 작동하는지 알았으므로 여러 세대를 통해 시뮬레이션 할 수 있습니다.
입력
입력은 표준 입력에서 줄 바꿈으로 끝나는 단일 숫자 N 입니다. 0 ≤ N ≤ 150. 시뮬레이션 할 세대 수입니다.
산출
출력은 표준 출력에서 단일 숫자이며 선택적으로 단일 줄 바꿈이 뒤 따릅니다. 이는 N 세대 이후의 살아있는 벌 수를 나타냅니다 .
표준 오류에 대한 추가 출력은 무시됩니다.
샘플 입력
0
5
42
100
샘플 출력
6
44
1029
5296
승리 조건
골프에서 관례 적으로 가장 짧은 코드가 승리합니다. 동점 인 경우에는 이전 솔루션이 우선합니다.
테스트 사례
동일한 테스트 사례를 포함하는 두 개의 테스트 스크립트가 있습니다.
두 경우 모두에서 호출은 다음과 같습니다 <test script> <my program> [arguments]
(예 : ./test ruby beehive.rb
또는) ./test.ps1 ./beehive.exe
.
151 대신 22 개의 테스트 만 있다는 것을 알고 있습니다 (주로 솔루션이 매우 느리기 때문에). 작업을 해결하는 대신 정확한 테스트 사례를 포함하지 마십시오. 이러한 스크립트는 변경으로 인해 프로그램이 여전히 올바르게 작동하는지 테스트하는 데 편리합니다. 코드를 특정 테스트 사례에 맞게 조정할 수는 없습니다.
다른 메모
이 과제는 2011-W24 년에 제 대학에서 열린 골프 대회의 일부였습니다. 참가자의 점수와 언어는 다음과 같습니다.
- 336 – C
- 363 – C
- 387 – C
- 389 – 하스켈
- 455 – C
우리 자신의 해결책은
- 230 – 루비