푄 현상

고도 배열에 구간 덧셈이 일어날 때마다, 인접한 지점 사이 고도 차이로 정해지는 N번 지점의 바람 온도를 구한다.

보통6배열누적 합구현면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

IOI 왕국에서는 바람이 항상 바다에서 육지 쪽으로 분다. 지점은 N+1N + 1개이고 0번부터 NN번까지 번호가 붙어 있다. 바람은 0번 지점에서 NN번 지점까지 번호 순서대로 분다. JOI 씨의 집은 NN번 지점에 있다. 0번 지점의 고도는 A0=0A_0 = 0이고, ii번 지점(1iN1 \le i \le N)의 고도는 AiA_i이다.

바람은 지표면을 따라 불고, 고도가 바뀌면 바람의 온도도 바뀐다. 바다에 가장 가까운 0번 지점에서 바람의 온도는 0도이다. 각 ii(0iN10 \le i \le N - 1)에 대해 ii번 지점에서 i+1i + 1번 지점으로 갈 때 바람의 온도 변화는 AiA_iAi+1A_{i+1}의 값에만 달려 있고, 다음과 같이 정해진다.

  • Ai<Ai+1A_i < A_{i+1}이면 고도 1당 바람의 온도가 SS도씩 내려간다. 즉 온도가 S×(Ai+1Ai)S \times (A_{i+1} - A_i)도 내려간다.
  • AiAi+1A_i \ge A_{i+1}이면 고도 1당 바람의 온도가 TT도씩 올라간다. 즉 온도가 T×(AiAi+1)T \times (A_i - A_{i+1})도 올라간다.

IOI 왕국의 땅에서는 지각 변동이 활발하다. QQ일 동안의 지각 변동 기록이 주어진다. jj일째(1jQ1 \le j \le Q)에는 LjkRjL_j \le k \le R_j인 모든 kk번 지점의 고도가 XjX_j만큼 변한다(1LjRjN1 \le L_j \le R_j \le N). XjX_j가 음이 아니면 고도가 XjX_j만큼 올라가고, XjX_j가 음수이면 고도가 Xj|X_j|만큼 내려간다. 각 지각 변동은 그 전날까지 바뀐 고도에 이어서 적용된다.

지각 변동 기록이 주어질 때, 각 jj(1jQ1 \le j \le Q)에 대해 jj일째 지각 변동 직후 JOI 씨의 집에서 바람의 온도를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 네 정수 NN, QQ, SS, TT가 공백으로 구분되어 주어진다. JOI 씨의 집은 NN번 지점에 있고, 지각 변동은 QQ번 일어난다. 고도가 올라가면 고도 1당 바람의 온도가 SS도 내려가고, 고도가 내려가면 고도 1당 바람의 온도가 TT도 올라간다.

다음 N+1N + 1개의 줄 중 ii번째 줄(1iN+11 \le i \le N + 1)에는 지각 변동 전 (i1)(i - 1)번 지점의 고도인 정수 Ai1A_{i-1}이 주어진다.

다음 QQ개의 줄 중 jj번째 줄(1jQ1 \le j \le Q)에는 세 정수 LjL_j, RjR_j, XjX_j가 공백으로 구분되어 주어진다. jj일째 지각 변동에서 LjL_j번부터 RjR_j번까지 지점의 고도가 XjX_j만큼 변한다는 뜻이다.

출력

QQ개의 줄에 출력한다. jj번째 줄(1jQ1 \le j \le Q)에는 jj일째 지각 변동 직후 JOI 씨의 집에서 바람의 온도를 출력한다.

제한

  • 1N2000001 \le N \le 200\,000
  • 1Q2000001 \le Q \le 200\,000
  • 1S10000001 \le S \le 1\,000\,000
  • 1T10000001 \le T \le 1\,000\,000
  • A0=0A_0 = 0
  • 1000000Ai1000000-1\,000\,000 \le A_i \le 1\,000\,000 (1iN1 \le i \le N)
  • 1LjRjN1 \le L_j \le R_j \le N (1jQ1 \le j \le Q)
  • 1000000Xj1000000-1\,000\,000 \le X_j \le 1\,000\,000 (1jQ1 \le j \le Q)
  • 입력으로 주어지는 모든 값은 정수이다.