#722. 顺序结构

顺序结构

样例下载

【题目描述】

一个变量初值为 x ,依次执行 n 条语句,最后输出该变量的值。

n 条语句是如下三种类型语句之一:

  1. x+=v
  2. x=min(x,v)
  3. x=max(x,v)

现在要依次执行 q 个操作,操作有两种:修改操作和询问操作。格式如下:

  • 1 k v 表示要把第 k 条语句修改为 x+=v
  • 2 k v 表示要把第 k 条语句修改为 x=min(x,v)
  • 3 k v 表示要把第 k 条语句修改为 x=max(x,v)
  • 4 x 表示询问:若变量的初值为 x,在执行完 n 条语句(前面操作有修改的,要执行修改后的语句)后,变量的终值为多少?

你只需要依次输出所有询问操作的答案。

【输入格式】

第一行:一个正整数 n,表示顺序执行的语句数量。

接下来 n 行:每行两个正整数 op, v ,op(1≤op≤3)表示语句类型,v 表示语句对应的数值。

接下来一行:一个正整数 q,表示操作的个数。

接下来 q 行,每行表示一个操作,格式和含义见题目描述。

【输出格式】

依次输出所有询问操作的答案,每个询问的答案占一行。

【样例输入】

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 

【样例输出】

760 
790 
1419 

【数据范围】

对于 100% 的数据:n, q ≤ 300000,操作 2,3,4 涉及的 v 或 x 在[1, 10^8]之间,所有加法操作涉及的 v 在 [1,200] 之间。

特殊性质 1:保证所有的 q 个操作都是操作 4。

特殊性质 2:保证任意时刻,操作序列中最多有 10 个取 max,min 的操作。

特殊性质 3:保证任意时刻,操作序列中不存在取 max 的操作。