만드는 중입니다

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

구간 합 최대? 1

면접 대비

시간 제한1초메모리 제한128 MB

요약
배열에서 한 원소를 갱신하는 연산과, 주어진 구간 안의 모든 부분 배열에 대해 U 곱하기 부분 합 더하기 V 곱하기 길이의 최댓값을 구하는 연산을 처리한다.
난이도

보통10점 중 5점

유형
배열, 완전 탐색, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

길이가 NN인 수열 K1,K2,…,KNK_1, K_2, \dots, K_N과 상수 UU, VV가 주어진다.

쿼리 QQ개가 주어지며, 종류는 두 가지다.

  1. AA, BB가 주어지면 A≤i≤j≤BA \le i \le j \le B를 만족하는 ii, jj 중에서 U×(Ki+Ki+1+⋯+Kj)+V×(j−i)U \times (K_i + K_{i+1} + \dots + K_j) + V \times (j - i)의 최댓값을 구한다.
  2. AA, BB가 주어지면 KAK_A의 값을 BB로 바꾼다.

입력

첫째 줄에 정수 NN, QQ, UU, VV가 주어진다. (1≤N,Q≤1031 \le N, Q \le 10^3, −5≤U,V≤5-5 \le U, V \le 5)

둘째 줄에 정수 K1,K2,…,KNK_1, K_2, \dots, K_N이 주어진다. (−102≤Ki≤102-10^2 \le K_i \le 10^2)

셋째 줄부터 QQ개의 줄에 쿼리가 한 줄에 하나씩 주어진다. 각 줄에는 세 정수 CC, AA, BB가 주어진다. (0≤C≤10 \le C \le 1)

CC가 0이면 첫 번째 종류의 쿼리이고, 이때 1≤A≤B≤N1 \le A \le B \le N이다. CC가 1이면 두 번째 종류의 쿼리이고, 이때 1≤A≤N1 \le A \le N, −102≤B≤102-10^2 \le B \le 10^2이다.

출력

첫 번째 종류의 쿼리마다 그 결과를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    5 3 2 4
    1 1 1 1 1
    0 1 5
    1 3 -2
    0 1 5
    
    예상 출력
    26
    20