#P1662. 奇怪的函数(func)

奇怪的函数(func)

【题目描述】

鸡尾酒有一个奇怪的函数F(x) ,这个函数的输入参数是一个正整数x,为了得到这个函数的运算结果,这个函数需要依次进行n个步骤,每个步骤是如下三种形式之一:

  1. x+=vali
  2. x=min(x,vali)
  3. 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的操作。