#SGM0000061. Chmin Chmax Add và tổng đoạn (Range Chmin Chmax Add Range Sum)

Chmin Chmax Add và tổng đoạn (Range Chmin Chmax Add Range Sum)

Chmin Chmax Add và tổng đoạn (Range Chmin Chmax Add Range Sum)

Nguồn: Library Checker

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho dãy số nguyên a0,a1,…,aN−1a_0,a_1,\ldots,a_{N-1}. Xử lý QQ truy vấn trên đoạn nửa mở [l,r)[l,r):

  • 0 l r b: ai←min⁡(ai,b)a_i\leftarrow\min(a_i,b) cho mọi l≤i<rl\le i<r.
  • 1 l r b: ai←max⁡(ai,b)a_i\leftarrow\max(a_i,b) cho mọi l≤i<rl\le i<r.
  • 2 l r b: ai←ai+ba_i\leftarrow a_i+b cho mọi l≤i<rl\le i<r.
  • 3 l r: in ∑i=lr−1ai\sum_{i=l}^{r-1}a_i.

Input

Dòng đầu chứa N,QN,Q. Dòng thứ hai chứa NN số a0,…,aN−1a_0,\ldots,a_{N-1}. Mỗi trong QQ dòng sau là một query loại 0, 1, 2 hoặc 3 như mô tả.

Output

Với mỗi query loại 3, in tổng đoạn trên một dòng.

Subtask

  • Subtask 1 (20%): N,Q≤30; các điều kiện khác giữ như bài đầy đủ.

  • Subtask 2 (30%): N,Q≤3000; các điều kiện khác giữ như bài đầy đủ.

  • Subtask 3 (50%): toàn bộ giới hạn:

  • 1≤N,Q≤2⋅1051\le N,Q\le2\cdot10^5

  • 0≤l<r≤N0\le l<r\le N

  • trong toàn bộ quá trình luôn có ∣ai∣≤1012|a_i|\le10^{12}

Ví dụ

Input

5 8
1 2 3 4 5
3 0 5
0 1 5 3
3 0 5
1 0 3 2
2 2 5 4
3 1 4
0 0 5 6
3 0 5

Output

15
12
16
22

Giải thích

Từ [1,2,3,4,5], chmin [1,5) 3 cho [1,2,3,3,3], tổng 12. chmax [0,3) 2 cho [2,2,3,3,3]; sau add [2,5) 4 dãy thành [2,2,7,7,7].