CF1774F2 Magician and Pigs (Hard Version)
题目描述
这是该问题的困难版本。两种版本的唯一区别在于 $n$ 和 $x$ 的约束条件。只有在两种版本都被解决的情况下,你才能进行 Hack。
Little09 长期以来对魔法很感兴趣,幸运的是他遇到了一位魔法师!魔法师将会进行 $n$ 次操作,每次操作为以下三种之一:
- $1\ x$:创造一只生命值为 $x$ 的猪。
- $2\ x$:将所有存活猪的生命值减少 $x$。
- $3$:重复之前所有的操作。具体来说,假设这是第 $i$ 次操作,则依次执行前 $i-1$ 次操作(包括其中涉及的“重复”操作)。
当一只猪的生命值小于等于 $0$ 时,它会死亡。
Little09 想知道所有操作结束后,存活的猪有多少只。请输出答案对 $998\,244\,353$ 取模。
输入格式
第一行包含一个整数 $n$($1\leq n\leq 8\cdot 10^5$)——操作的数量。
接下来的 $n$ 行,每行包含一个操作,格式如题目描述所述。保证在前两种操作中 $1\leq x\leq 10^9$。
输出格式
输出一个整数,表示所有操作结束后存活的猪的数量,对 $998\,244\,353$ 取模。
说明/提示
在第一个样例中,所有操作等价于重复四次:创造一只生命值为 $8$ 的猪,然后将所有存活猪的生命值减少 $3$。很容易发现,最后有两只存活的猪,生命值分别为 $2$ 和 $5$。
由 ChatGPT 4.1 翻译