#P1662. 奇怪的函数(func)
奇怪的函数(func)
【题目描述】
鸡尾酒有一个奇怪的函数F(x) ,这个函数的输入参数是一个正整数x,为了得到这个函数的运算结果,这个函数需要依次进行n个步骤,每个步骤是如下三种形式之一:
- x+=vali
- x=min(x,vali)
- x=max(x,vali)
依次执行完这n个步骤之后,这个函数就可以安心输出答案了。
现在,鸡尾酒得到了这个函数,他想简化这个函数,确切的来说,他有q个问题,每个问题要么是修改这个函数的某一个步骤,要么给定一个x,询问当前的值F(x),请帮助他完成这个过程。
输入格式】
第一行一个正整数n,表示这个函数的步骤数量。
接下来n行,每行两个正整数"opt val",opt(1<=opt<=3)表示这是第几种操作,
val表示这一次操作对应的权值。
接下来一行一个正整数q,表示问题的个数。
接下来q行,每行要么是如下四种操作之一:
“1 pos val “表示把第pos个步骤改成x+=val 。
“2 pos val “表示把第pos个步骤改成x=min(x,val) 。
“3 pos val“表示把第pos个步骤改成x=max(x,val) 。
“4 x“表示询问,此时F(x)是多少。
【输出格式】
对于每一个操作 4,输出一行一个数字表示答案。
【样例1输入】
10
1 48
1 50
1 180
2 957
1 103
1 100
1 123
3 500
1 66
1 70
3
4 20
4 50
4 700
【样例1输出】
760
790
1419
【数据范围】
对于 100% 的数据:n,q<=300000,操作 2,3,4 涉及的val 在[1, 10^8]之间,
所有加法操作涉及的val在 [1,200] 之间。
测试点编号 | n | q | 特殊性质 |
---|---|---|---|
1 | <=10000 | 无 | |
2,3,4,5,6 | <=100000 | <=100000 | 1 |
7,8,9,10,11 | 2 | ||
12,13,14,15,16 | 3 | ||
17,18,19,20 | <=300000 | 无 |
特殊性质 1:保证所有的q个操作都是操作 4。
特殊性质 2:保证任意时刻,操作序列中最多有 10 个取max,min的操作。
特殊性质 3:保证任意时刻,操作序列中不存在取max的操作。