Cho dãy $A_1, A_2, \ldots, A_N$ độ dài $N$, và dãy $B$ độ dài $N$ ban đầu với $B_i = 0$. Viết chương trình thực hiện các truy vấn sau:
1 L R X: Với mọi $L \le i \le R$, gán $A_i = A_i + X$.2 L R Y: Với mọi $L \le i \le R$, gán $A_i = \max(A_i, Y)$.3 L R Y: Với mọi $L \le i \le R$, gán $A_i = \min(A_i, Y)$.4 L R: In ra $B_L + B_{L+1} + \ldots + B_R$.
Bất cứ khi nào một truy vấn loại 1, 2 hoặc 3 làm cho $A_i$ thay đổi, giá trị của $B_i$ được tăng lên $1$.
Dữ liệu vào
Dòng đầu tiên chứa kích thước dãy $N$. ($1 \le N \le 500{,}000$)
Dòng thứ hai chứa $A_1, A_2, \ldots, A_N$. ($-10^9 \le A_i \le 10^9$)
Dòng thứ ba chứa số lượng truy vấn $M$. ($1 \le M \le 500{,}000$)
$M$ dòng tiếp theo mỗi dòng mô tả một truy vấn. ($1 \le L \le R \le N$, $-2{,}000 \le X \le 2{,}000$, $-10^9 \le Y \le 10^9$) Có ít nhất một truy vấn loại 4.
Dữ liệu ra
Với mỗi truy vấn loại 4, in ra một dòng chứa kết quả.
Ví dụ
Dữ liệu vào 1
5 1 2 3 4 5 11 4 1 5 1 1 3 3 4 1 5 2 2 5 5 4 1 5 3 1 4 5 4 1 4 2 1 5 0 4 1 5 3 1 5 1 4 1 2
Dữ liệu ra 1
0 3 4 5 5 4