#P14109. [ZJCPC 2017] Card Game

[ZJCPC 2017] Card Game

Description

Alice 和 Bob 又开始玩游戏了。这次的游戏和石子无关,而是一个纸牌游戏。

桌面上有 nn 张牌,每张牌上写有两个整数(一个表示红色,一个表示蓝色)。每一轮开始时,会给出两个整数 LLRR。Alice 需要选择一个整数 xx,满足 LxRL \le x \le R,并将她的选择告诉 Bob。在得知 xx 后,Bob 会从桌面上选择一张牌。本轮得分等于 rx+brx + b,其中 rr 表示所选牌上的红色整数,bb 表示该牌上的蓝色整数。

Alice 和 Bob 都可以在做出决策前自由查看桌面上的所有牌及其整数。

为了让游戏更加有趣,在某一轮前可以进行如下操作:

  • 向桌面上加入一张写有红色和蓝色整数的新牌。
  • 移除桌面上的一张牌。

Alice 希望每一轮都最大化得分,而 Bob 则希望最小化得分。如果两人都采取最优策略,你能求出每一轮的最终得分么?

Input Format

输入包含多组测试数据。第一行为一个整数 TT,表示测试数据组数。对于每组测试数据:

第一行包含两个整数 nn1n5×1041 \le n \le 5 \times 10^4)和 qq1q5×1041 \le q \le 5 \times 10^4),表示初始在桌面上的牌数和操作数。

接下来的 nn 行,每行包含两个整数 rir_ibib_i109ri,bi109-10^9 \le r_i, b_i \le 10^9),表示初始时有一张牌,其红色数为 rir_i、蓝色数为 bib_i

接下来的 qq 行,每行包含三个整数 opop0op20 \le op \le 2)、aabb109a,b109-10^9 \le a, b \le 10^9)。

  • op=0op = 0,表示你需要计算该回合的最终得分,给定 L=aL = aR=bR = b。保证此时 aba \le b
  • op=1op = 1,表示将一张红色数为 aa,蓝色数为 bb 的新牌放到桌面上。
  • op=2op = 2,表示要移除一张红色数为 aa,蓝色数为 bb 的牌。保证这张牌存在于桌面上。如果有多张满足的牌,只移除一张即可。

保证所有测试数据中 nnqq 的总和不超过 2×1052 \times 10^5

请注意,本题输入输出数据量较大,建议使用更快的输入输出方式。例如,C++ 中可以使用 scanf/printf 替代 cin/cout。

Output Format

对于每个 op=0op = 0 的操作,输出一行,表示该回合的最终得分。

2
2 7
-1 2
2 3
0 -1 1
2 -1 2
0 -1 1
2 2 3
1 1 2
1 -2 -1
0 -1 1
2 3
1 1
1 1
0 1 3
2 1 1
0 1 3
2
5
1
4
4

Hint

由 ChatGPT 5 翻译