해적이 특정 규칙에 따라 합리적으로 금화를 나누는 기존 "게임"이 있습니다. Wikipedia 에서 인용 :
합리적인 해적 A, B, C, D 및 E가 있습니다. 그들은 100 개의 금화를 찾습니다. 배포 방법을 결정해야합니다.
해적들은 엄격한 연대 순서를 가지고있다 : A는 C보다 우월한, B보다 우월한, D보다 우월한, E보다 우월한 B보다 우월하다.
따라서 해적 세계의 분배 규칙은 다음과 같습니다. 가장 고위 해적은 동전 분배를 제안해야합니다. 제안자를 포함한 해적들은이 배포판을 받아 들일지 여부에 투표합니다. 동점 투표의 경우 제안자는 캐스팅 투표를합니다. 분배가 승인되면 코인이 지급되고 게임이 종료됩니다. 그렇지 않은 경우, 제안자는 해적선에서 배 밖으로 던져져 죽으며, 다음으로 가장 고위 해적은 시스템을 다시 시작하라는 새로운 제안을합니다.
해적은 세 가지 요소에 따라 결정을 내립니다. 우선, 각 해적은 생존하기를 원합니다. 둘째, 생존을 감안할 때, 각 해적은 각자받는 금화의 수를 최대화하려고합니다. 셋째, 다른 모든 결과가 다른 경우 각 해적은 다른 배 밖으로 던지는 것을 선호합니다. 해적들은 서로를 믿지 않으며, 제안 된 배포 계획을 제외하고 각 해적에게 많은 금화를주는 해적 간 약속을 지키거나 존중하지 않을 것입니다.
도전
정수로 입력하십시오 n. 1 <= n <= 99. 여기서 n해적의 수는-첫 번째 해적부터 시작하여 코인의 분포를 출력합니다.
테스트 사례 (첫 번째 줄이 입력되고 두 번째 출력) :
1
100
2
100 0
3
99 0 1
5
98 0 1 0 1
이것은 code-golf 이므로 바이트 단위의 최단 솔루션이 이깁니다.
n < 100합니까? 직원이 많고 도금이되어 있지 않은 해적선도 배포 지원이 필요합니다.