描述 |
---|
给你 n 堆积木,第 i 堆积木有 a[i] 个,现在你可以执行以下三种操作: 1 x y:在第 x 堆积木上添加 y 个积木,即 a[x] += y。(1 <= x <= n,1 <= y <= 1e5) 2 x y:从第 x 堆积木上拿走 y 个积木,如果不足 y 个,则全部拿完。(1 <= x <= n,1 <= y <= 1e5) 3 x y:交换第 x 堆积木和第 y 堆积木,即 swap(a[x],a[y])。(1 <= x、y <= n) |
输入 |
第一行是一个正整数 n 代表总共有 n 堆积木。(1 <= n <= 1e5) 第二行是 n 个正整数分别代表 a[1] ~ a[n]。(1 <= a[i] <= 1e5,1 <= i <=n) 第三行是一个整数 m 代表操作的次数。(0 <= m <= 1e5) 最后是 m 行,每行三个数字代表一个如描述所述的操作。 |
输出 |
在 m 次操作结束以后积木的总数,然后换行。 |
样例输入 |
5 1 2 3 4 5 10 1 1 3 1 2 4 2 1 9 1 1 5 3 4 5 2 5 5 1 3 2 2 2 3 3 1 5 2 1 1 |
样例输出 |
18 |
HINT |
来源 |
TKK-ICPC Round#6 |