题库/YBT00384

#YBT00384. 栈的维护

    传统题 难度: 提高 标签>一本通线段树的建树、点改与区间查询
时间限制1000 ms
内存限制512 MiB
通过率100%1 / 1 次提交
题目描述 查看题解 开始编程Alt+E

YBT00384 · 栈的维护

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制512 MiB
通过率100%1 / 1 次提交

题目描述

从前有个栈,一开始是空的。 你写下了 mm 个操作,每个操作形如“k  vk\;v”,若 k=0k = 0,代表往栈顶加入一个数 vv;若k=1k = 1,则代表从栈顶弹出 vv 个数,如果栈中的元素少于 vv 个,则全部弹出。 接着你又进行了 qq 次修改,每次你会选择一个操作,并且修改它的两个参数。 在每次修改后,你都要求出如果依次执行这些操作,最后栈中剩下的元素之和。

输入

第一行两个正整数m,qm,q ,分别表示操作数和修改次数。 接下来 mm 行,每行两个整数 k,vk,v ,代表一个操作。 接下来 qq 行,每行三个正整数 c,k,vc,k,v ,表示将第 cc 个操作的参数修改为 kk 和 vv。

输出

输出 qq 行,每行一个整数,代表依次执行所有操作后栈中剩下的元素之和。

输入样例

4 3
0 1
0 2
1 2
0 3
2 0 3
3 1 1
4 1 1

输出样例

3
4
0

提示

【数据规模】 对于30%的数据,m,q≤1000m,q≤1000。 对于另外20%的数据,保证执行每个k=1k = 1的操作时都会弹出栈中所有元素。 对于100%的数据,m,q≤2×105,v≤104m, q ≤ 2×10^5,v ≤ 10^4。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共8个测试点,非原站或官方原始数据。总分100分。

题目信息

#1812
100%

1 次通过 · 1 次提交

练习难度 提高
时间限制
1000ms
内存限制
512MiB
上传者