AT_abc469_c [ABC469C] Cantrip

题目描述

给定一个长度为 $N$ 的字符串 $S$,仅包含字符 `o` 和 `x`。 有 $N$ 个袋子排成一排,每个袋子里都有一颗糖果。 对于第 $i$ 个袋子,如果 $S$ 的第 $i$ 个字符是 `o`,则袋子上写有“hit”;如果是 `x`,则写有“miss”。 对于每个 $k=1,2,\dots,N$,解决以下问题: > 高桥从队列的最前面拿到前 $k$ 个袋子,吃掉里面的糖果,并保留这些袋子。 > 然后,他尽可能多地重复以下操作: > > - 扔掉一个自己持有的写有“hit”的袋子,再从队列的最前面拿走一个袋子,吃掉里面的糖果,并保留该袋子。只有当队列中还有剩余的袋子,并且自己手里还有写有“hit”的袋子时,才能进行此操作。 > > 计算他最多可以吃到多少颗糖果。 > 注意,每当他拿到一个袋子时,该袋子会从队列中移除。

输入格式

输入由标准输入按以下格式给出: > $N$ $S$

输出格式

输出共 $N$ 行。 第 $l$ 行应输出当 $k=l$ 时的答案。

说明/提示

### 样例解释 1 对于 $k=1$,他拿到的袋子上写有“hit”。他丢弃它,然后拿到的袋子上写有“miss”,因此无法继续操作。 ### 约束条件 - $1 \leq N \leq 8 \times 10^5$ - $N$ 是整数。 - $S$ 是一个长度为 $N$ 只包含 `o` 和 `x` 的字符串。 由 ChatGPT 5 翻译