最新消息:680元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 清点人数

C++ 少儿编程 1214浏览 0评论

友情提示:680元/半年,儿童学编程,就上码丁实验室

【题目描述】

NK 中学组织同学们去五云山寨参加社会实践活动,按惯例要乘坐火车去。由于 NK 中学的学生很多,在火车开之前必须清点好人数。

初始时,火车上没有学生。当同学们开始上火车时,年级主任从第一节车厢出发走到最后一节车厢,每节车厢随时都有可能有同学上下。年级主任走到第 $m$ 节车厢时,他想知道前 $m$ 节车厢上一共有多少学生,但是他没有调头往回走的习惯。也就是说每次当他提问时,$m$ 总会比前一次大。

【输入】

第一行两个整数 $n,k$,表示火车共有 $n$ 节车厢以及 $k$ 个事件。

接下来有 $k$ 行,按时间先后给出 $k$ 个事件,每行开头都有一个字母 $A$,$B$ 或 $C$。

如果字母为 $A$,接下来是一个数 $m$,表示年级主任现在在第 $m$ 节车厢;

如果字母为 $B$,接下来是两个数 $m,p$,表示在第 $m$ 节车厢有 $p$ 名学生上车;

如果字母为 $C$,接下来是两个数 $m,p$,表示在第 $m$ 节车厢有 $p$ 名学生下车。

学生总人数不会超过 $10^5$ 。

【输出】

对于每个 $A$ ,输出一行,一个整数,表示年级主任的问题的答案。

【输入样例】

10 7
A 1
B 1 1
B 3 1
B 4 1
A 2
A 3
A 10

【输出样例】

0
1
2
3

【提示】

数据范围与提示:

对于 30% 的数据,$1≤n,k≤10^4$ ,至少有 $3000$ 个 $A$;

对于 100% 的数据,$1≤n≤5×10^5 ,1≤k≤10^5$ ,至少有 $3×10^4$ 个 $A$。

您必须 登录 才能发表评论!