RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
문제 JOI00085

日本沈没 2 (Japan Sinks 2)

설명

日本列島は東西に細長い列島である.日本列島は南北方向の境界線により N 個の区画に分けられている.区画には西から順に 1 から N までの番号が付けられている.現在,区画 i ( \(1 \le i \le N\) ) の標高は A i m である.

日本列島ではたびたび嵐が起きている.嵐が起きると波による浸食で各区画の標高が以下のように減少する.

強さ x の 西風の 嵐では,西から数えて x 個以内の区画のうち,「それより西に自身より標高の高い区画が存在しない」ようなすべての区画の標高が 1 m 減少する.すなわち,嵐の前の区画 i の標高を a i で表すと, \(i \le x\) かつ, \(1 \le k < i\) となるすべての k に対して a k ≦ a i となる場合に区画 i の標高は 1 m 減り,それ以外の場合には変わらない.

強さ x の 東風の 嵐では,東から数えて x 個以内の区画のうち,「それより東に自身より標高の高い区画が存在しない」ようなすべての区画の標高が 1 m 減少する.すなわち,嵐の前の区画 i の標高を a i で表すと, i ≧ N - x + 1 かつ, \(i < k \le N\) となるすべての k に対して a k ≦ a i となる場合に区画 i の標高は 1 m 減り,それ以外の場合には変わらない.

あなたは,今後 Q 日間の出来事をシミュレーションしなければならない. j 日目 ( \(1 \le j \le Q\) ) には次のような出来事が起きる.

T j = 1 のとき,強さ X j の西風の嵐が起きる.

T j = 2 のとき,強さ X j の東風の嵐が起きる.

T j = 3 のとき,その時点での区画 X j の標高を報告する.

なお,制約より,どの区画の標高も負にならないことが保証される.

現在の各区画の標高および今後 Q 日間の出来事が与えられるので, T j = 3 である日に対して,指定された区画の標高を求めるプログラムを作成せよ.

제약

1 ≦ N ≦ 300 000 .

1 ≦ Q ≦ 300 000 .

Q ≦ A i ≦ 10 9 ( \(1 \le i \le N\) ).

1 ≦ T j ≦ 3 ( \(1 \le j \le Q\) ).

1 ≦ X j ≦ N ( \(1 \le j \le Q\) ).

入力される値はすべて整数である.

( 5 点) N ≦ 2 000 , Q ≦ 2 000 .

( 27 点) T j ≠ 3 ならば X j = N ( \(1 \le j \le Q\) ).

( 28 点) A 1 = A 2 = ... = A N = Q .

( 20 点) T j ≠ 2 ( \(1 \le j \le Q\) ).

( 20 点) 追加の制約はない.

입력 형식

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

N Q

A 1 A 2 ... A N

T 1 X 1

T 2 X 2

:

T Q X Q

출력 형식

T j = 3 である j ( \(1 \le j \le Q\) ) それぞれに対して, j 日目時点での区画 X j の標高 ( m ) を表す整数を, 1 行ずつ順に出力せよ.

예제 1
입력
5 7
7 7 7 7 7
1 3
1 1
3 1
2 1
2 5
3 2
3 4
출력
5
6
6
예제 2
입력
5 7
10 13 14 7 12
1 5
2 5
3 3
3 4
2 5
3 1
3 2
출력
12
7
9
11
예제 3
입력
5 6
8 6 7 8 9
1 1
3 1
3 5
1 3
3 2
3 3
출력
7
9
6
6
예제 4
입력
5 6
6 8 6 9 7
2 1
2 4
3 5
1 5
3 4
3 3
출력
5
7
6
문제 정보

생성자가 기록되지 않았습니다.

출처 JOI 2023 Preliminary 2

평가 및 의견

日本沈没 2 (Japan Sinks 2)

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

日本沈没 2 (Japan Sinks 2)

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8