#299. 能量场

能量场

题目背景

太空飞船的星际探险家dash负责探索一个神秘的宇宙能量场。这个能量场由一个函数 f(x)f(x) 表示,初始时它是一个平静的常数场 f(x)=0f(x) = 0,无论飞船位于哪个坐标 xx,能量值都是 00。在你的探险旅途中,地面指挥中心会通过无线电发送 QQ 条指令,你需要按顺序执行这些指令,调整能量场的形态。指令分为两种:能量调整信号能量侦测信号

  • 能量调整信号 1 a b:指挥中心传来两个关键参数 aabb,要求你调整飞船的能量发射器,将当前能量场 f(x)f(x) 更新为 g(x)=f(x)+xa+bg(x) = f(x) + |x - a| + b。这里的 xa|x - a| 表示飞船与某个能量核心 aa 的距离造成的波动,bb 是额外的能量偏移。随后,能量场将变为新的 g(x)g(x)
  • 能量侦测信号 2:指挥中心要求你扫描整个能量场,找到使 f(x)f(x) 取值最小的坐标 xx,并报告这个 xx 以及对应的最小能量值。如果有多个坐标都能使能量最小,选择最小的那个 xx。科学家已证明,能量场的最优解总是整数坐标,因此你需要以整数形式报告结果。

你的任务是驾驶飞船,精准执行每条指令,并在每次侦测时报告能量场的最优位置和值,完成这场星际探险!

输入格式

  • 第一行:一个整数 QQ,表示指令数量。
  • 接下来 QQ 行,每行是一条指令:
    • 能量调整信号格式:1 a b(三个整数,分别表示指令类型 11 和参数 a,ba, b)。
    • 能量侦测信号格式:2(仅一个整数,表示指令类型 22)。

输出格式

对于每条能量侦测信号(类型 2),按指令给出的顺序输出一行答案。每行包含两个整数,用空格分隔:

  • 第一个数:使 f(x)f(x) 取值最小的最小坐标 xx
  • 第二个数:f(x)f(x) 的最小能量值。

数据范围

  • 输入的所有值均为整数。
  • 1Q2×1051 \leq Q \leq 2 \times 10^5(指令数量在 1 到 200,000 之间)。
  • 109a,b109-10^9 \leq a, b \leq 10^9(参数 aabb 的范围在 109-10^910910^9 之间)。
  • 第一条指令一定是能量调整信号。

样例

4
1 4 2
2
1 1 -8
2
4 2
1 -3
4
1 -1000000000 1000000000
1 -1000000000 1000000000
1 -1000000000 1000000000
2
-1000000000 3000000000

说明

对于样例1:

  • 第一次能量调整信号 1 4 2:初始 f(x)=0f(x) = 0,调整后 f(x)=x4+2f(x) = |x - 4| + 2。 在第一次侦测时,能量场在 x=4x = 4 时取到最小值 22,输出 4 2
  • 第二次能量调整信号 1 1 -8:基于上次的 f(x)=x4+2f(x) = |x - 4| + 2,调整后 $f(x) = |x - 4| + 2 + |x - 1| - 8 = |x - 1| + |x - 4| - 6$。 在第二次侦测时,能量场在 1x41 \leq x \leq 4 时取到最小值 3-3,其中最小的 xx11,输出 1 -3