AT_past202309_n ソートと関数

题目描述

对于一个由正整数组成的多重集 $S$,定义函数 $f(S)$ 如下: - 首先,令 $A=(A_0,A_1,\ldots,A_{|S|-1})$ 为 $S$ 的元素按升序排序后的列表。 - 然后,$f(S)=\displaystyle \sum_{i=0}^{|S|-1} K^i A_i$。常数 $K$ 将由输入给出。 - 如果 $S$ 为空集,则 $f(S)=0$。 现有一个初始为空的多重集 $T$。将对这个集合总共进行 $Q$ 次如下操作: > + $x$ 向 $T$ 中加入一个 $x$。 > - $x$ 从 $T$ 中移除一个 $x$。保证此时 $T$ 中至少有一个 $x$。 每次操作后,输出此时 $f(T)$ 对 $998244353$ 取模后的值。

输入格式

从标准输入读取数据,格式如下: > $Q$ $K$ > $ope_1$ > $ope_2$ > $\vdots$ > $ope_Q$ 其中 $ope_i$ 表示第 $i$ 次操作。

输出格式

共输出 $Q$ 行。 第 $i$ 行输出第 $i$ 次操作后 $f(T)$ 对 $998244353$ 取模的结果。

说明/提示

### 样例解释 1 - 第一次操作向 $T$ 加入 $7$。 - 此时 $T=\{7\}$,$f(T)=7$。 - 第二次操作移除 $7$。 - 此时 $T=\{\}$,$f(T)=0$。 - 第三次操作加入 $2$。 - 此时 $T=\{2\}$,$f(T)=2$。 - 第四次操作加入 $3$。 - 此时 $T=\{2,3\}$,$f(T)=8$。 - 第五次操作移除 $2$。 - 此时 $T=\{3\}$,$f(T)=3$。 - 第六次操作加入 $3$。 - 此时 $T=\{3,3\}$,$f(T)=9$。 - 第七次操作加入 $5$。 - 此时 $T=\{3,3,5\}$,$f(T)=29$。 - 第八次操作移除 $3$。 - 此时 $T=\{3,5\}$,$f(T)=13$。 - 第九次操作加入 $998244352$。 - 此时 $T=\{3,5,998244352\}$,$f(T)=3992977421$,对 $998244353$ 取模输出 $9$。 - 第十次操作加入 $5$。 - 此时 $T=\{3,5,5,998244352\}$,$f(T)=7985954849$,对 $998244353$ 取模输出 $25$。 ### 数据范围 - $Q$ 和 $K$ 为整数。 - $1 \le Q \le 3 \times 10^5$ - $1 \le K < 998244353$ - 每次操作中的 $x$ 为整数。 - 对于每次 `+` 操作,$1 \le x < 998244353$。 - 对于每次 `-` 操作,保证 $T$ 中有一个及以上 $x$。 由 ChatGPT 5 翻译