100 atcoder#ABC217D. [ABC217D] Cutting Woods

[ABC217D] Cutting Woods

题目描述

長さ L L メートルの直線状の木材があります。
x = 1, 2, , L  1 x\ =\ 1,\ 2,\ \dots,\ L\ -\ 1 に対して、木材の左端から x x メートルの地点には目印として線 x x が引かれています。

Q Q 個のクエリが与えられます。 i i 番目のクエリは数の組 (ci, xi) (c_i,\ x_i) によって表されます。
以下の説明に従ってクエリを i i の昇順に処理してください。

  • ci = 1 c_i\ =\ 1 のとき : 線 xi x_i がある地点で木材を 2 2 つに切る。
  • ci = 2 c_i\ =\ 2 のとき : 線 xi x_i を含む木材を選び、その長さを出力する。

ただし ci = 1, 2 c_i\ =\ 1,\ 2 の両方に対して、線 xi x_i はクエリを処理する時点で切られていないことが保証されます。

输入格式

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

L L Q Q c1 c_1 x1 x_1 c2 c_2 x2 x_2 \vdots cQ c_Q xQ x_Q

输出格式

ci = 2 c_i\ =\ 2 を満たすクエリの回数と等しい行数だけ出力せよ。 j j 行目では j j 番目のそのようなクエリに対する答えを出力せよ。

题目大意

给定一个长度为 LL 的序列 [1,L][1,L]qq 个询问。对于第 ii 次询问有一个 cic_ixix_i,如果 ci=1c_i=1,将 xx 点所在的区间 [l,r][l,r] 分为 [l,x][l,x][x+1,r][x+1,r];如果 ci=2c_i=2,输出 xx 点所在区间的长度。

5 3
2 2
1 3
2 2
5
3
5 3
1 2
1 4
2 3
2
100 10
1 31
2 41
1 59
2 26
1 53
2 58
1 97
2 93
1 23
2 84
69
31
6
38
38

提示

制約

  • 1  L  109 1\ \leq\ L\ \leq\ 10^9
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • ci = 1, 2 c_i\ =\ 1,\ 2 (1  i  Q) (1\ \leq\ i\ \leq\ Q)
  • 1  xi  L  1 1\ \leq\ x_i\ \leq\ L\ -\ 1 (1  i  Q) (1\ \leq\ i\ \leq\ Q)
  • 全ての i i (1  i  Q) (1\ \leq\ i\ \leq\ Q) に対して次が成り立つ: 1  j < i 1\ \leq\ j\ \lt\ i かつ (cj,xj) = (1, xi) (c_j,x_j)\ =\ (1,\ x_i) を満たす j j は存在しない。
  • 入力は全て整数である。

Sample Explanation 1

1 1 番目のクエリ時点では木材は一度も切られていないので、線 2 2 を含む木材の長さは 5 5 メートルです。よって 5 5 を出力します。 2 2 番目のクエリによって、木材は 3 3 メートルの木材と 2 2 メートルの木材に分割されます。 3 3 番目のクエリ時点では 線 2 2 を含む木材の長さは 3 3 メートルなので、3 3 を出力します。