100 atcoder#ABC127F. [ABC127F] Absolute Minima

[ABC127F] Absolute Minima

题目描述

関数 f(x) f(x) があります。 はじめ、これは定数関数 f(x) = 0 f(x)\ =\ 0 です。

Q Q 個のクエリが与えられるので、順番に処理してください。クエリは 2 2 種類あり、入力形式とクエリの内容は以下の通りです。

  • 更新クエリ 1 a b: 2整数 a a , b b が与えられるので、g(x) = f(x) + x  a + b g(x)\ =\ f(x)\ +\ |x\ -\ a|\ +\ b として f(x) f(x) g(x) g(x) で置き換える。
  • 求値クエリ 2: f(x) f(x) の最小値を与える x x 、および f(x) f(x) の最小値を出力する。ただし、そのような x x が複数存在する場合には最小の x x を答える。

この時、求値クエリにおいて出力すべき値は常に整数となることが示せます。 したがって、出力する際は小数点を用いず、整数で出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

Q Q Query1 Query_1 : : QueryQ Query_Q

実例は入出力例 1 を参照せよ。

输出格式

求値クエリに対する応答を、クエリが与えられた順にそれぞれ 1 行で出力せよ。

各求値クエリに対する応答では、f(x) f(x) の最小値を与える最小の x x 、および f(x) f(x) の最小値を空白スペース区切りで出力すること。

题目大意

题目描述

有一个函数 f(x)f(x) ,初始时 f(x)=0f(x)=0

接下来你会对这个函数进行 QQ 次以下操作:

  • 1 a b\texttt{1 a b},将 f(x)f(x) 替换为 g(x)=f(x)+xa+bg(x)=f(x)+|x-a|+b
  • 2\texttt{2},询问最小的整数 xx ,使得 f(x)f(x) 取到最小值,以及 f(x)f(x) 的最小值

输入格式

第一行一个整数 QQ

接下来 QQ 行,每行一个或三个整数,表示一次操作。

输出格式

对于每一次询问,输出一行两个整数,分别表示最小的整数 xx ,使得 f(x)f(x) 取到最小值,和 f(x)f(x) 的最小值

数据范围与提示

1Q200000,109a,b1091 \le Q \le 200000,-10^9 \le a,b \le 10^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  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • 109  a, b  109 -10^9\ \leq\ a,\ b\ \leq\ 10^9
  • 1 1 番目のクエリは更新クエリである

Sample Explanation 1

1 1 つ目の求値クエリにおいて、f(x) = x  4 + 2 f(x)\ =\ |x\ -\ 4|\ +\ 2 となっています。 したがって x = 4 x\ =\ 4 において最小値 2 2 を取ります。 2 2 つ目の求値クエリでは、f(x) = x  1 + x  4  6 f(x)\ =\ |x\ -\ 1|\ +\ |x\ -\ 4|\ -\ 6 となっており、x x 1  x  4 1\ \leq\ x\ \leq\ 4 を満たすならば最小値 3 -3 を与えます。この時、最小値を与える x x が複数存在していますが、その中で最小の値である 1 1 を出力してください。