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