#HK4217. 「CCO 2016」Pirates
「CCO 2016」Pirates
题目描述
一群有 个海盗找到了 枚金币。他们必须决定如何分配这些金币。他们按照以下规则分配:
年龄最大的海盗提出一个分配方案。每个海盗得到的金币数量必须是非负整数,并且总和等于 。
然后,每个海盗对这个提议投票「同意」或「不同意」。提议通过所需的同意票数取决于海盗的数量。如果有 个海盗,那么需要 张同意票才能通过提议。如果提议通过,金币按照提议的分配方案分配,游戏结束。否则,年龄最大的海盗被扔下船,游戏重新开始。
海盗们按照以下规则行动,这些规则按优先级排列:
- 海盗会采取行动避免自己被扔下船。
- 海盗会尽可能多地获得金币。
- 海盗会尽可能多地让其他人(除了自己,因为规则 优先)被扔下船。
- 海盗会尽可能多地让年龄最大的海盗获得金币。如果有多个选择符合这些规则,他会最大化第二老的海盗得到的金币,然后是第三老的海盗,以此类推。
如果有多个选项符合这些规则,海盗会随机选择一个行动。(你可以假设这个问题的答案不依赖于海盗在这个情况下的选择。)此外,所有海盗都非常聪明,知道问题描述中的所有信息。他们不能达成协议或联盟,因为他们不信任彼此。
我们将海盗从 到 编号,其中 是最年轻的, 是最老的。
如果有 个海盗,他们中最老的海盗能得到多少金币?
输入格式
输入的第一行是包含一个整数 。
输入的第二行是包含一个整数 。
接下来的 行,每行包含一个整数 ,表示如果有 个海盗,通过提议所需的同意票数。
输出格式
输出 行,第 行包含一个整数,表示第 个海盗如果是最老的海盗(即只有海盗 存在时)能得到的金币数量。如果第 个海盗被扔下船,在第 行输出 。
5
100
1
1
2
2
3
100
100
99
99
98
5
100
1
2
3
4
4
100
-1
-1
-1
100
4
100
1
1
2
3
100
100
99
97
4
2
1
1
2
3
2
2
1
-1
数据范围与提示
对于 的数据,;
对于另外 的数据,;
对于另外 的数据,;
对于 的数据,;。