#p3982. 习题11.2.7 预约

习题11.2.7 预约

题目描述

JZYZ有一间空的礼堂,可以为企业或者单位提供会议场地。这些会议中的大多数都需要连续几天的时间(个别的可能只需要一天),不过场地只有一个,所以不同的会议的时间申请不能够冲突。也就是说,前一个会议的结束日期必须在后一个会议的开始日期之前。所以,如果要接受一个新的场地预约申请,就必须拒绝掉与这个申请相冲突的预约。

一般来说,如果JZYZ方面事先已经接受了一个会场预约,例如从10日到15日,就不会再接受与之相冲突的预约,例如从12日到17日。不过,有时出于经济利益,HL方面有时会为了接受一个新的会场预约,而拒绝掉一个甚至几个之前预订的预约。

于是,礼堂管理员QQ的笔记本上经常记录着这样的信息:


老板决定:接受10日-15日的预约;

老板决定:接受17日-19日的预约;

老板决定:接受12日-17日的预约,且拒绝与之相冲突的2个预约;

老板决定:接受11日-12日的预约,且拒绝与之相冲突的1个预约;

本题中为方便起见,所有的日期都用一个整数表示。例如,如果一个为期10天的会议从“90日”开始到“99日”,那么下一个会议最早只能从“100日”开始。

最近,这个业务的工作量与日俱增,礼堂的管理员QQ希望你替他设计一套计算机系统,方便他的工作。这个系统应当能执行下面两个操作:

A操作:有一个新的预约是从“start日”到“end日”,并且拒绝掉所有与它相冲突的预约。执行这个操作的时候,你的系统应当返回为了这个新预约而拒绝掉的预约个数,以方便QQ与自己的记录相校对。

B操作:请你的系统返回当前仍然有效的预约的总数。

输入格式

输入文件的第一行是一个整数n,表示你的系统将接受的操作总数。

接下去n行每行表示一个操作。每一行的格式为下面两者之一:

“A start end”表示一个A操作;

“B”表示一个B操作。

输出格式

输出文件有n行,每行一个整数对应一个输入操作。表示你的系统对于该操作的返回值。

样例数据

input


6

A 10 15

A 17 19

A 12 17

A 90 99

A 11 12

B

output


0

0

2

0

1

2

数据规模与约定

对于10%的数据,1N25001 \leq N \leq 2500

对于60%的数据,1N250001 \leq N \leq 25000

对于100%的数据,$1 \leq N \leq 200000, 1\leq start \leq end \leq 10^5$ 。

时间限制:1s1 \text {s}

空间限制:256MB256 \text {MB}