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 翻译