atcoder#ABC287G. [ABC287G] Balance Update Query

[ABC287G] Balance Update Query

题目描述

高橋君は N N 種類のカードを 10100 10^{100} 枚ずつ持っています。はじめ、i i 種類目のカードの得点は ai a_i で、使用可能枚数は bi b_i です。

以下の形式のクエリが Q Q 個与えられるので、順に処理してください。

  • 1 x y : x x 種類目のカードの得点を y y に設定
  • 2 x y : x x 種類目のカードの使用可能枚数を y y に設定
  • 3 x : 次の条件を満たすように x x 枚のカードを選ぶことができるならば選ばれたカードの得点の総和の最大値を、そうでなければ -1 を出力
    • どの種類のカードもその使用可能枚数を超えて選ばれない

输入格式

入力は以下の形式で標準入力から与えられる。ただし、queryi \mathrm{query}_i i i 番目のクエリを表す。

N N a1 a_1 b1 b_1 \vdots aN a_N bN b_N Q Q query1 \mathrm{query}_1 \vdots queryQ \mathrm{query}_Q

输出格式

3 3 種類目のクエリの個数を M M とする。M M 行出力をせよ。
i i 行目には i i 番目の 3 3 種類目のクエリに対する出力をせよ。

题目大意

nn 种卡片, 每种卡片有两种属性: 价值AiA_i 和数目 BiB_i, 要求支持 33 种操作

  • 读入(1,x,y)(1, x, y), 将AxA_x 的数值改为 yy
  • 读入(2,x,y)(2, x, y), 将BxB_x 的数值改为 yy
  • 读入(3,x)(3, x), 输出在所有卡片中选择xx张卡片的最大价值, 若i=1nBi<x\sum\limits_{i=1}^{n}B_i <x, 则输出1-1
3
1 1
2 2
3 3
7
3 4
1 1 10
3 4
2 1 0
2 3 0
3 4
3 2
11
19
-1
4

提示

制約

  • 1  N,Q  2 × 105 1\ \leq\ N,Q\ \leq\ 2\ \times\ 10^5
  • 0  ai  109 0\ \leq\ a_i\ \leq\ 10^9
  • 0  bi  104 0\ \leq\ b_i\ \leq\ 10^4
  • 1 1 種類目のクエリにおいて 1  x  N, 0  y  109 1\ \leq\ x\ \leq\ N,\ 0\ \leq\ y\ \leq\ 10^9
  • 2 2 種類目のクエリにおいて 1  x  N, 0  y  104 1\ \leq\ x\ \leq\ N,\ 0\ \leq\ y\ \leq\ 10^4
  • 3 3 種類目のクエリにおいて 1  x  109 1\ \leq\ x\ \leq\ 10^9
  • 3 3 種類目のクエリが 1 1 個以上含まれる
  • 入力はすべて整数

Sample Explanation 1

1 1 番目の 3 3 種類目のクエリでは、2 2 種類目のカードを 1 1 枚、3 3 種類目のカードを 3 3 枚選ぶことで得点の総和が 11 11 となり、これが最大です。 2 2 番目の 3 3 種類目のクエリでは、1 1 種類目のカードを 1 1 枚、3 3 種類目のカードを 3 3 枚選ぶことで得点の総和が 19 19 となり、これが最大です。 3 3 番目の 3 3 種類目のクエリでは、4 4 枚のカードを選ぶことができないため出力は -1 となります。 4 4 番目の 3 3 種類目のクエリでは、2 2 種類目のカードを 2 2 枚選ぶことで得点の総和が 4 4 となり、これが最大です。