#HD202501B. 夜世界
夜世界
你来到了夜世界,这是一个神奇的地方,这里有金矿、哥布林、时光钟楼。
很幸运,夜世界的领主赏赐给你 座排成一行的金矿,同时要求你在这里停留 天。每座金矿有一个属性 ,代表该金矿一天产出的金币数量,但是,每座金矿中都潜伏着一只哥布林,每只哥布林都有一个属性 ,代表这只哥布林的贪婪值。
每天夜晚,你将从第 座金矿走到第 座金矿,每走过一座金矿,以下两件事情依次发生:
- 你将获得此座金矿当天产出的金币;
- 潜伏在此座金矿中的哥布林露出了爪牙,向你索要与它贪婪值相等的金币,如果你没有这么多金币,那你只能将自己所有的金币都交给它,随后它看你穷得可怜,会放你离开。
受到神秘力量的影响,每天早晨都会发生以下某一事件:
- 第 座金矿一天产出的金币数量变为 ,修改是持久的;
- 第 座金矿中潜伏的哥布林的贪婪值变为 ,修改是持久的;
- 时光钟楼显灵了!夜世界的状态被回溯到了第 天!这意味着 数组的状态将回退至与第 天夜晚一致,初始给出的 数组表示第 天夜晚的状态;
- 有 座金矿中潜伏的哥布林变得穷凶极恶,当天夜晚,它们将不再向你索要与它们贪婪值相等的金币,若你目前拥有 枚金币,它们将向你索要 枚金币,随后它们的神智清醒,不再穷凶极恶,但是你仍然很害怕,并希望知道当天夜晚你总共会交给哥布林多少金币,你需要打印这个值。
Input
第一行包含一个整数 ,表示测试数据的组数,。
对于每组测试数据:
-
第一行包含两个整数 和 ,分别表示金矿的数量和你需要在夜世界停留的天数;
-
第二行包含 个整数 ,,表示每座金矿一天产出的金币数量;
-
第三行包含 个整数 ,,表示每座金矿中潜伏的哥布林的贪婪值;
-
接下来 行,每行表示一个操作,格式如下:
1 x y
:第 座金矿一天产出的金币数量变为 ;2 x y
:第 座金矿中潜伏的哥布林的贪婪值变为 ;3 x
:夜世界的状态被回溯到了第 天();4 k pos_1 pos_2 ... pos_k
:潜伏在这些金矿中的哥布林变得穷凶极恶,需要输出当天夜晚你总共会交给哥布林多少金币。
数据保证:,,。
Output
对于所有操作 4
,你需要输出一个整数,表示当天夜晚你总共会交给哥布林多少金币。
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
Output
18