배열에서 한 원소를 갱신하는 연산과, 주어진 구간 안의 모든 부분 배열에 대해 U 곱하기 부분 합 더하기 V 곱하기 길이의 최댓값을 구하는 연산을 처리한다.
길이가 NNN인 수열 K1,K2,…,KNK_1, K_2, \dots, K_NK1,K2,…,KN과 상수 UUU, VVV가 주어진다.
쿼리 QQQ개가 주어지며, 종류는 두 가지다.
첫째 줄에 정수 NNN, QQQ, UUU, VVV가 주어진다. (1≤N,Q≤1031 \le N, Q \le 10^31≤N,Q≤103, −5≤U,V≤5-5 \le U, V \le 5−5≤U,V≤5)
둘째 줄에 정수 K1,K2,…,KNK_1, K_2, \dots, K_NK1,K2,…,KN이 주어진다. (−102≤Ki≤102-10^2 \le K_i \le 10^2−102≤Ki≤102)
셋째 줄부터 QQQ개의 줄에 쿼리가 한 줄에 하나씩 주어진다. 각 줄에는 세 정수 CCC, AAA, BBB가 주어진다. (0≤C≤10 \le C \le 10≤C≤1)
CCC가 0이면 첫 번째 종류의 쿼리이고, 이때 1≤A≤B≤N1 \le A \le B \le N1≤A≤B≤N이다. CCC가 1이면 두 번째 종류의 쿼리이고, 이때 1≤A≤N1 \le A \le N1≤A≤N, −102≤B≤102-10^2 \le B \le 10^2−102≤B≤102이다.
첫 번째 종류의 쿼리마다 그 결과를 한 줄에 하나씩 출력한다.