만드는 중입니다

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

ADD, DIV, MAX

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

요약
배열에서 구간 덧셈, 구간 내림 나눗셈, 구간 최댓값 질의를 N과 Q가 200000까지인 조건에서 처리한다.
난이도

어려움10점 중 8점

유형
세그먼트 트리, 연결 리스트, 수학, 구현
정답자
아직 제출이 없습니다

문제

정수 수열 a0,a1,…,aN−1a_0, a_1, \ldots, a_{N-1}이 주어진다.

다음 QQ개의 질의를 처리해야 한다. 각 질의는 다음 중 하나이다.

  • ADD t=0t=0, l r x: l≤i≤rl \le i \le r인 모든 ii에 대해 ai=ai+xa_i = a_i + x.
  • DIV t=1t=1, l r x: l≤i≤rl \le i \le r인 모든 ii에 대해 ai=floor(ai/x)a_i = {\rm floor}(a_i / x). 여기서 floor(y){\rm floor}(y)는 yy보다 크지 않은 가장 큰 정수이다.
  • MAX t=2t=2, l r x=0: max(al,al+1,…,ar){\rm max}(a_l, a_{l+1}, \ldots, a_r)을 출력한다.

입력

입력은 다음 형식으로 주어진다.

NN QQ

a0a_0 a1a_1 ... aN−1a_{N-1}

t1t_1 l1l_1 r1r_1 x1x_1

t2t_2 l2l_2 r2r_2 x2x_2

…\ldots

tQt_Q lQl_Q rQr_Q xQx_Q

출력

각 MAX 질의에 대해 max(al,al+1,...,ar){\rm max}(a_l, a_{l+1}, ..., a_r)을 출력한다.

제한

모든 입력값은 정수이며, 1≤N,Q≤200 0001 \leq N, Q \leq 200\,000, 0≤ai≤1080 \leq a_i \leq 10^8, ti=0,1,2t_i = 0, 1, 2, 0≤li≤ri≤N−10 \leq l_i \leq r_i \leq N-1, ti≠2t_i \neq 2이면 1≤xi≤10001 \leq x_i \leq 1000, ti=2t_i=2이면 xi=0x_i=0이다.

힌트

예제 1에 대해,

max(1,2,3,4,5)=5{\rm max}(1, 2, 3, 4, 5) = 5

1,2,3,4,5→11,12,3,4,51, 2, 3, 4, 5 \to 11, 12, 3, 4, 5

max(11,12,3,4,5)=12{\rm max}(11, 12, 3, 4, 5) = 12

max(3)=3{\rm max}(3) = 3

11,12,3,4,5→2,3,3,4,511, 12, 3, 4, 5 \to 2, 3, 3, 4, 5

max(2)=2{\rm max}(2) = 2

max(3)=3{\rm max}(3) = 3

예제3

  1. 예제 1

    입력
    5 7
    1 2 3 4 5
    2 0 4 0
    0 0 1 10
    2 0 4 0
    2 2 2 0
    1 0 1 4
    2 0 0 0
    2 1 1 0
    
    예상 출력
    5
    12
    3
    2
    3
    
  2. 예제 2

    입력
    4 7
    0 1 0 1
    2 0 3 0
    0 0 3 1
    1 0 3 2
    2 0 3 0
    0 0 3 1
    1 0 3 2
    2 0 3 0
    
    예상 출력
    1
    1
    1
    
  3. 예제 3

    입력
    10 20
    13 1 22 8 28 18 23 9 22 27
    1 3 4 5
    1 8 8 8
    0 3 9 5
    0 2 6 3
    1 1 3 7
    2 2 2 0
    2 3 5 0
    0 1 4 2
    2 0 1 0
    0 3 9 8
    2 1 9 0
    0 8 9 5
    1 5 7 7
    0 3 5 7
    0 7 9 7
    2 1 6 0
    0 1 1 7
    1 4 8 10
    2 0 9 0
    1 5 6 1
    
    예상 출력
    3
    26
    13
    40
    30
    52