N - Increasing Gradually

解説を見る
  • 実行時間制限:2000 ms
  • メモリ制限:1073741824 Bytes
  • 配点:100
  • ジャッジ:Batch

ストーリー

Imosちゃん「私にも問題作らせて~!」

問題文

広義単調増加する長さ NN の数列 A=(A1,A2,...,AN)A=(A_1, A_2, ..., A_N) が与えられます.
QQ 行にわたってクエリが与えられるので,順に処理してください.各クエリは以下のいずれかの形式で与えられます.

  • 1 x : 数列 AA に存在する数のうち,xx 以上の最小の数を求めてください.
  • 2 x y : Nx+1N-x+1 個の要素 Ax,Ax+1,...,ANA_x, A_{x+1}, ..., A_N 全てに yy を加算してください.

制約

  • 入力はすべて整数
  • 1N,Q21051 \leq N, Q \leq 2 \cdot 10^5
  • 1A1A2...AN1091 \leq A_1 \leq A_2 \leq ... \leq A_N \leq 10^9
  • クエリが 1 x の形式で与えられたとき,
    • 1x21091 \leq x \leq 2 \cdot 10^9
  • クエリが 2 x y の形式で与えられたとき,
    • 1xN1 \leq x \leq N
    • 1y10001 \leq y \leq 1000

入力

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

N QN~Q
A1 A2 ... ANA_1~A_2~...~A_N
Query1Query_1
Query2Query_2
......
QueryQQuery_Q

ここで QueryiQuery_iii 番目のクエリを表し,以下のいずれかの形式で与えられる.

1 x1~x

2 x y2~x~y

出力

1 x の形式で与えられるクエリの個数が XX 個であるとして,XX 行出力してください.
ii 行目には 1 x の形式で与えられたクエリのうち ii 番目の答えを出力してください.ただし,答えが存在しない場合もあるので,その時は -1 を出力してください.

入力例1

5 6
2 3 5 7 11
1 6
2 3 2
2 5 12
1 22
2 2 10
1 15

出力例1

7
25
17
  • 11 番目のクエリ : 数列 A=(2,3,5,7,11)A=(2, 3, 5, 7, 11) より,66 以上の最小の数は 77 なので,出力すべきは 7 です.
  • 22 番目のクエリ : 数列 A=(2,3,7,9,13)A=(2, 3, 7, 9, 13) となります.
  • 33 番目のクエリ : 数列 A=(2,3,7,9,25)A=(2, 3, 7, 9, 25) となります.
  • 44 番目のクエリ : 2222 以上の最小の数は 2525 なので,出力すべきは 25 です.
  • 55 番目のクエリ : 数列 A=(2,13,17,19,35)A=(2, 13, 17, 19, 35) となります.
  • 66 番目のクエリ : 1515 以上の最小の数は 1717 なので,出力すべきは 17 です.

アフターストーリー

Imosちゃん「みんなも気が向いたらWriter,Testerになってみて! またどこかで会おうね!」