U416829 栈
题目背景
**时间限制:** 1.0 秒
**空间限制:** 512 MB
题目描述
给定 $n$ 个初始为空的栈,你需要维护 $m$ 个操作,每个操作为以下三种之一:
- $1~x~w~c$:在第 $x$ 个栈中加入 $c$ 个 $w$, 你需要回答加入后第 $x$ 个栈内的所有数之和;
- $2~x~c$:第 $x$ 个栈中弹出末尾 $c$ 个数(保证第 $x$ 个栈内有至少 $c$ 个数),你需要回答弹出 $c$ 个数之和;
- $3~x~y$:依次将第 $x$ 个栈的数弹出并加入到第 $y$ 个栈,你需要回答加入后第 $y$ 个栈内的所有数之和。
输入格式
从标准输入读入数据。
输入的第一行包含两个整数 $n,m$,分别表示栈的个数和需要执行的操作个数。
接下来 $m$ 行,每行按上述格式描述一个操作。
输出格式
输出到标准输出。
输出 $m$ 行,每行一个非负整数表示对应操作应回答的结果。
说明/提示
### 样例 1 解释
- 第 $1$ 次操作后,第 $1$ 个栈变为 $3,3$,答案为 $3+3=6$;
- 第 $2$ 次操作后,第 $2$ 个栈变为 $2,2,2$,答案为 $2+2+2=6$;
- 第 $3$ 次操作后,第 $2$ 个栈变为 $2,2,2,4$,答案为 $2+2+2+4=10$;
- 第 $4$ 次操作依次弹出 $4,2,2,2$,操作后第 $2$ 个栈为空,第 $3$ 个栈变为 $4,2,2,2$,答案为 $4+2+2+2=10$;
- 第 $5$ 次操作依次弹出 $2,2$,操作后第 $3$ 个栈变为 $4,2$,答案为 $2+2=4$;
- 第 $6$ 次操作依次弹出 $2,4$,操作后第 $3$ 个栈变为空,第 $1$ 个栈变为 $3,3,2,4$,答案为 $3+3+2+4=12$;
- 第 $7$ 次操作依次弹出 $4,2,3,3$,操作后第 $1$ 个栈变为空,答案为 $4+2+3+3=12$。
### 子任务
对于所有测试数据,满足 $1\le n,m,w\le 2\times 10^5,~1\le x,y\le n,~x\ne y,~1\le c\le 10^8$。
| 子任务编号 | 分值 | $n,m,w \le$ | $c \le$ |
| :----: | :---: | :-----: | :-----: |
| 1 |20 | $2000$ | $1$ |
| 2|20 | $2000$ | $10^8$ |
| 3|20 | $10^5$ | $1$ |
| 4|20 | $10^5$ | $10^8$ |
| 5|20 | $2 \times 10^5$ | $ 10^8$ |