T1 鬼子进村
【题目描述】
县城里有n个用地道相连的房子,第i个只与第i-1和第i+1个相连。有m个消息依次传来:
(1)消息为:D x,鬼子将x号房子摧毁了,地道被堵上;
(2)消息为:R,村民们将鬼子上一个摧毁的房子修复了;
(3)消息为:Q x,有一名士兵被围堵在x号房子中;
现在询问每一个被围堵的士兵能够到达的房子有几个。
【输入描述】
第一行2个整数n、m(n,m <= 50000);
接下来m行,有如题所述的三种信息共m条。
【输出描述】
对于每一个被围堵的士兵,输出该士兵能够到达的房子数。
【输入样例】
7 9
D 3
D 6
D 5
Q 4
Q 5
R
Q 4
R
Q 4
【输出样例】
1
0
2
4
T2 可怜的狗狗
【题目描述】
小卡家有n只狗,每一只狗都有一个不同的漂亮值。漂亮值越低越漂亮,吃饭时,狗狗们会按顺序站成一排等着主人给食物。
可小卡不肯喂这么多狗,于是他每次就只给第i只到第j只狗中第k漂亮的狗狗喂食。而且为了保证某一只狗狗不会被喂太多次,他喂的每个区间(i,j)不互相包含。
【输入描述】
第一行输入两个数n、m(n <= 300000,m <= 50000),m表示他喂了m次;
第二行n个整数,表示第i只狗的漂亮值为ai;
接下来m行,每行3个整数i、j、k表示这次喂食喂第i到第j只狗中第k漂亮的狗的漂亮值。
【输出描述】
输出m行,每行一个整数,表示每一次喂的那只狗漂亮值为多少。
【输入样例】
7 2
1 5 2 6 3 7 4
1 5 3
2 7 1
【输出样例】
3
2
T3 送花
【题目描述】
小明一开始有一个空的花束,每朵花有一个美丽值W,价格为C,他不断地向里面添加花。他有以下几种操作:
1 W C:添加一朵美丽值为W,价格为C的花;
3:删除最便宜的一朵花;
2:删除最贵的一朵花;
-1:完成添加与删除,开始包装花束;
若删除操作时没有花,则跳过删除操作。
如果加入的花朵价格已经与花束中已有花朵价格重复,则这一朵花不能加入花束。
请你帮小明写一个程序,计算出开始包装花束时,花束中所有花的美丽值的总和,以及小明需要为花束付出的总价格。
【输入描述】
输入若干行,每行一个操作,以-1结束。
【输出描述】
输出一行,两个空格隔开的正整数,表示开始包装花束时,花束中所有花的美丽值的总和,以及小明需要为花束付出的总价格。
【输入样例】
1 1 1
1 2 5
2
1 3 3
3
1 5 2
-1
【输出样例】
8 5
【数据范围及提示】
对于全部数据,操作数 <= 100000,1 <= W,C <= 1000000。