#P11924. [PA 2025] 贪婪大盗 / Piracka Chciwość
[PA 2025] 贪婪大盗 / Piracka Chciwość
题目背景
PA 2025 R4A.
题目描述
有 名海盗,编号 。海盗编号越小,他的地位越高。
每位海盗 都有一个贪婪系数 ,为正整数。
他们获得了 枚金币,现在要分金币。
分金币的方式如下:
- 船上编号最小的海盗提出一个分赃方案,即为每个船上的海盗 分配 枚金币。这里,。
- 然后,所有船上的海盗(包括提出方案的海盗)对该分赃方案投票,选择支持或反对。
- 如果至少 的海盗支持方案,则金币按照提议的方式分配。
- 否则,提出方案的海盗被扔下船(他不再参与接下来的讨论,也无法获得任何金币)。随后,由仍在船上的编号最小的海盗重复上述过程,直到确定一种分配方式为止。
每个海盗 选择支持该分赃方案,当且仅当,如果拒绝方案:
-
他最终会被扔下船(他提出自己的方案后会被否决);
-
或者他在该方案中的收益 满足 ,其中
- 是当前方案被否决后,该海盗最终获得的金币数;
- 是贪婪系数。
所有海盗都知道所有其他海盗的贪婪系数,每个人的策略都是固定的:
- 如果提出方案的海盗无论如何都会被扔下船(不存在一个方案可接受):
- 该海盗提议自己独占所有金币,接受自己的命运,被扔下船。
- 否则,存在至少一个可接受的方案。
-
该海盗会选择提出其中一个方案( 金币也比被扔下船好)。
-
在所有可接受的方案中,海盗会选择自己分得最多金币的方案;
-
如果仍然有多个可接受方案,海盗更倾向于让编号较大的海盗获得更多金币。
具体地说,编号为 的海盗,在所有可接受方案中,最小化编号 的海盗所获金币数。
- 如果仍然有多个方案,则最小化编号 的海盗所得金币数,依此类推。
-
求出最终每个海盗能够分得多少金币。
输入格式
第一行,两个正整数 。
第二行, 个正整数 。
输出格式
输出一行 个整数 。
- 若第 个海盗被扔下船,;
- 否则 为最终第 个海盗分得的金币数。
3 100
28 1 56
44 0 56
5 1
1 1 1 1 1
-1 0 0 1 0
6 6
3 5 1 4 2 6
2 0 0 0 4 0
提示
样例解释
- 样例解释 :
如果海盗 被扔下船,那么海盗 会独占所有金币(虽然海盗 会投反对票,但是无济于事)。
因此,海盗 无法说服海盗 支持他的方案,除非他给海盗 至少 枚金币(这超出了总金币数)。
从而,海盗 选择转而说服海盗 ,即给他足够多的金币,使他愿意支持该方案。海盗 需要至少给海盗 枚金币。
所以最终方案为:,,。
在该方案下,海盗 投下反对票,海盗 无力回天。
- 样例解释 :
对于海盗 ,金币无论如何都不够分,所以他被扔下船。
海盗 有两个选择:
- 将 枚金币给海盗 ;
- 将 枚金币给海盗 。
按照规则,他选择方案 。
- 样例解释 :海盗 支持海盗 的方案,所以方案成功通过。
数据范围
- ;
- ;
- 。