만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

효율적인 자료 구조

면접 대비

시간 제한5초메모리 제한512 MB

요약
두 수열 a, b에 값 변경 연산을 수행하고, c_i = max(c_{i-1} + b_i, a_i) 점화식으로 정의된 c_x 값을 구합니다.
난이도

보통10점 중 5점

유형
세그먼트 트리, 동적 계획법
정답자
아직 제출이 없습니다

문제

Elly에게 길이가 nn인 두 수열 a_1,a_2,…,a_na\_1, a\_2, \ldots, a\_n과 b_1,b_2,…,b_nb\_1, b\_2, \ldots, b\_n이 있다. 다음 세 가지 연산을 처리하는 자료 구조를 구현하시오.

  • 1 xx yy: a_xa\_x의 값을 yy로 바꾼다.
  • 2 xx yy: b_xb\_x의 값을 yy로 바꾼다.
  • 3 xx: c_xc\_x의 값을 구한다. 여기서 c_0=0c\_0=0이고, 1≤i≤x1 \le i \le x인 모든 ii에 대해 c_i=max⁡(c_i−1+b_i,a_i)c\_i=\max(c\_{i-1}+b\_i,a\_i)이다.

입력

입력은 여러 테스트 케이스로 이루어지며, 파일의 끝(EOF)에서 끝난다. 각 테스트 케이스의 첫 줄에는 두 정수 nn과 mm이 주어진다. 각각 수열의 길이와 연산의 개수이다. 둘째 줄에는 nn개의 정수 a_1,…,a_na\_1, \ldots, a\_n이, 셋째 줄에는 nn개의 정수 b_1,…,b_nb\_1, \ldots, b\_n이 주어진다. 마지막 mm개의 줄에는 쿼리가 한 줄에 하나씩 주어진다.

출력

타입 3 쿼리마다 c_xc\_x의 값을 한 줄에 출력한다.

제한

  • 1≤n,m≤2×1051 \leq n, m \leq 2 \times 10^5
  • −109≤a_i,b_i,y≤109-10^9 \leq a\_i, b\_i, y \leq 10^9
  • 1≤x≤n1 \leq x \leq n
  • 모든 테스트 케이스에 걸친 nn의 합과 mm의 합은 각각 2×1062 \times 10^6을 넘지 않는다.

예제1

  1. 예제 1

    입력
    4 9
    1 2 3 3
    -1 2 3 3
    3 1
    3 2
    3 3
    3 4
    2 2 -4
    3 1
    3 2
    3 3
    3 4
    
    예상 출력
    1
    3
    6
    9
    1
    2
    5
    8