AT_abc306_e [ABC306E] Best Performances
题目描述
有一个长度为 $N$ 的数列 $A=(A_1,A_2,\dots,A_N)$,初始时所有项均为 $0$。
给定一个整数 $K$,定义函数 $f(A)$ 如下:
- 将 $A$ 按降序(即非增序)排序,得到数列 $B$。
- 此时,$f(A)=B_1+B_2+\dots+B_K$。
现在对该数列进行共 $Q$ 次更新。
对于数列 $A$,依次进行以下 $i=1,2,\dots,Q$ 的更新操作,并在每次更新后输出此时的 $f(A)$ 的值。
- 将 $A_{X_i}$ 修改为 $Y_i$。
输入格式
输入从标准输入按以下格式给出。
> $N$ $K$ $Q$ $X_1$ $Y_1$ $X_2$ $Y_2$ $\vdots$ $X_Q$ $Y_Q$
输出格式
共输出 $Q$ 行。第 $i$ 行输出第 $i$ 次更新结束时的 $f(A)$ 的值。
说明/提示
### 数据范围
- 所有输入均为整数。
- $1\leq K\leq N\leq 5\times 10^5$
- $1\leq Q\leq 5\times 10^5$
- $1\leq X_i\leq N$
- $0\leq Y_i\leq 10^9$
### 样例解释 1
本输入中 $N=4,K=2$。共进行 $Q=10$ 次更新。
- 第 $1$ 次更新后 $A=(5,0,0,0)$,此时 $f(A)=5$。
- 第 $2$ 次更新后 $A=(5,1,0,0)$,此时 $f(A)=6$。
- 第 $3$ 次更新后 $A=(5,1,3,0)$,此时 $f(A)=8$。
- 第 $4$ 次更新后 $A=(5,1,3,2)$,此时 $f(A)=8$。
- 第 $5$ 次更新后 $A=(5,10,3,2)$,此时 $f(A)=15$。
- 第 $6$ 次更新后 $A=(0,10,3,2)$,此时 $f(A)=13$。
- 第 $7$ 次更新后 $A=(0,10,3,0)$,此时 $f(A)=13$。
- 第 $8$ 次更新后 $A=(0,10,1,0)$,此时 $f(A)=11$。
- 第 $9$ 次更新后 $A=(0,0,1,0)$,此时 $f(A)=1$。
- 第 $10$ 次更新后 $A=(0,0,0,0)$,此时 $f(A)=0$。
由 ChatGPT 4.1 翻译