Существует существующая «игра», в которой пираты рационально делят золотые монеты по определенным правилам. Цитата из Википедии :
Есть 5 рациональных пиратов, A, B, C, D и E. Они находят 100 золотых монет. Они должны решить, как их распределить.
У пиратов строгий порядок старшинства: A превосходит B, кто выше C, кто выше D, кто выше E.
Правила распространения в пиратском мире таковы: самый старший пират должен предложить распределение монет. Пираты, включая автора, затем голосуют за то, чтобы принять это распределение. В случае равного голосования голосующий имеет решающий голос. Если распределение принято, монеты раздаются и игра заканчивается. Если нет, тот, кто предлагает, сбрасывается с пиратского корабля за борт и умирает, а следующий самый старший пират делает новое предложение, чтобы снова запустить систему.
Пираты основывают свои решения на трех факторах. Прежде всего, каждый пират хочет выжить. Во-вторых, учитывая выживание, каждый пират хочет максимизировать количество золотых монет, которые получает каждый. В-третьих, каждый пират предпочел бы выбросить другого за борт, если все остальные результаты были бы равны. Пираты не доверяют друг другу и не дают и не выполняют никаких обещаний между пиратами, кроме предложенного плана распределения, который дает каждому пирату целое количество золотых монет.
Вызов
Возьмите в качестве входных данных целое число n
1 <= n <= 99, где n
указано количество пиратов, и выведите распределение монет, начиная с первого пирата.
Тестовые случаи (первая строка - это ввод; вторая - вывод):
1
100
2
100 0
3
99 0 1
5
98 0 1 0 1
Это код-гольф , поэтому выигрывает самое короткое решение в байтах.
n < 100
? Слишком укомплектованные, позолоченные пиратские корабли также нуждаются в распределительной помощи.