#P12760. 夜世界

夜世界

夜世界

Problem Description

你来到了夜世界,这是一个神奇的地方,这里有金矿、哥布林、时光钟楼。 很幸运,夜世界的领主赏赐给你 nn 座排成一行的金矿,同时要求你在这里停留 mm 天,每座金矿有一个属性 aia_i,代表该金矿一天产出的金币数量,但是,每座金矿中都潜伏着一只哥布林,每只哥布林都有一个属性 bib_i,代表这只哥布林的贪婪值。 每天夜晚,你将从第 11 座金矿走到第 nn 座金矿,每走过一座金矿,以下两件事情依次发生:

  • 你将获得此座金矿当天产出的金币;
  • 潜伏在此座金矿中的哥布林露出了爪牙,向你索要与它贪婪值相等的金币,如果你没有这么多金币,那你只能将自己所有的金币都交给它,随后它看你穷得可怜,会放你离开。 受到神秘力量的影响,每天早晨都会发生以下某一事件:
  • xx 座金矿一天产出的金币数量变为 yy,修改是持久的;
  • xx 座金矿中潜伏的哥布林的贪婪值变为 yy,修改是持久的;
  • 时光钟楼显灵了!夜世界的状态被回溯到了第 xx 天!这意味着 a,ba,b 数组的状态将回退至与第 xx 天夜晚一致,初始给出的 a,ba,b 数组表示第 00 天夜晚的状态;
  • kk 座金矿中潜伏的哥布林变得穷凶极恶,当天夜晚,它们将不再向你索要与它们贪婪值相等的金币,若你目前拥有 sumsum 枚金币,它们将向你索要 sum2\lceil \frac{sum}{2} \rceil 枚金币,随后它们的神智清醒,不再穷凶极恶,但是你仍然很害怕,并希望知道当天夜晚你总共会交给哥布林多少金币,你需要打印这个值。

Input

第一行包含一个整数 TT,表示测试数据的组数,1T101 \leq T \leq 10。 对于每组测试数据: 第一行包含两个整数 nnmm,分别表示金矿的数量和你需要在夜世界停留的天数; 第二行包含 nn 个整数 $a_1, \thinspace a_2, \thinspace a_3, \thinspace \dots, \thinspace a_n \thickspace (0 \leq a_i \leq 1e9)$,表示每座金矿一天产出的金币数量; 第三行包含 nn 个整数 $b_1, \thinspace b_2, \thinspace b_3, \thinspace \dots, \thinspace b_n \thickspace (0 \leq b_i \leq 1e9)$,表示每座金矿中潜伏的哥布林的贪婪值; 接下来 mm 行,第 ii 行按如下格式给出一个操作:

  • 1  x  y:  1 \thickspace x \thickspace y: \thickspacexx 座金矿一天产出的金币数量变为 yy
  • 2  x  y:  2 \thickspace x \thickspace y: \thickspacexx 座金矿中潜伏的哥布林的贪婪值变为 yy
  • 3  x:  3 \thickspace x: \thickspace 夜世界的状态被回溯到了第 x  (0x<i)x \thickspace (0 \leq x < i) 天;
  • 4  k:  4 \thickspace k: \thickspace 随后给出 k  (k0)k \thickspace (k \ge 0) 个严格递增的金矿的位置,潜伏在这些金矿中的哥布林变得穷凶极恶。 数据保证:n2e5\sum n \leq 2e5m2e5\sum m \leq 2e5k2e5\sum k \leq 2e5

Output

对于所有操作 44,你需要打印出当天夜晚你总共会交给哥布林多少金币。

Sample Input

1
4 5
1 9 10 8
2 4 2 4
2 2 6
2 1 9
1 3 20
3 1
4 2 2 4

Sample Output

18

Source

2025“钉耙编程”中国大学生算法设计暑期联赛(1)