AT_past202212_d 坊主めくり
题目描述
有 $N$ 位玩家要用牌玩一个游戏。
初始时,第一堆有 $M$ 张牌,第二堆有 $0$ 张牌,每位玩家手里也有 $0$ 张牌。
每张牌上写有一个 `+`、`0` 或 `-` 符号。第一堆自顶向下第 $i$ 张牌上的符号记为 $S_i$。
游戏规则如下,玩家轮流按顺序行动:玩家 $1$,玩家 $2$,$\ldots$,玩家 $N-1$,玩家 $N$,接着再从玩家 $1$ 开始循环,直到第一堆牌抽光。
- 如果第一堆没有牌,则游戏结束。否则,当前玩家从第一堆顶抽一张牌加到手牌中。然后,根据抽到的那张牌上的符号,执行对应操作:
- 若符号为 `+`,则将第二堆的所有牌加入该玩家的手牌。
- 若符号为 `0`,不做任何事。
- 若符号为 `-`,则把该玩家手上的所有牌移到第二堆。
请你求出游戏结束时每位玩家手中的牌数。
输入格式
输入为标准输入,格式如下:
> $N$ $M$ $S_1 S_2 \ldots S_M$
输出格式
输出 $N$ 行。
第 $i$ 行输出玩家 $i$ 最终手中牌的数量。
说明/提示
### 样例解释 1
游戏过程如下:
- 玩家 $1$ 抽到一张 `0` 牌,加入手牌。玩家 $1$ 现在有 $1$ 张牌。
- 玩家 $2$ 抽到一张 `0` 牌,加入手牌。玩家 $2$ 现在有 $1$ 张牌。
- 玩家 $3$ 抽到一张 `0` 牌,加入手牌。玩家 $3$ 现在有 $1$ 张牌。
- 玩家 $1$ 抽到一张 `-` 牌,加入手牌,然后把手牌全部移到第二堆。玩家 $1$ 现在有 $0$ 张牌,第二堆有 $2$ 张牌。
- 玩家 $2$ 抽到一张 `-` 牌,加入手牌,然后把手牌全部移到第二堆。玩家 $2$ 现在有 $0$ 张牌,第二堆有 $4$ 张牌。
- 玩家 $3$ 抽到一张 `+` 牌,加入手牌,然后把第二堆全部牌加到手牌。玩家 $3$ 现在有 $6$ 张牌,第二堆变为 $0$ 张牌。
- 第一堆没牌了,游戏结束。
### 数据范围
- $2 \leq N \leq 2\times 10^5$
- $1 \leq M \leq 2\times 10^5$
- $S_i$ 是 `+`、`0` 或 `-`。
由 ChatGPT 5 翻译