#SGM0000033. RMQ vòng tròn (Circular RMQ)

RMQ vòng tròn (Circular RMQ)

RMQ vòng tròn (Circular RMQ)

Nguồn: Codeforces

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

Đề bài

Duy trì một mảng vòng với cập nhật cộng trên đoạn vòng và truy vấn giá trị nhỏ nhất trên đoạn vòng.

Input

Dòng 1 chứa nn. Dòng 2 chứa a0,…,an−1a_0,\ldots,a_{n-1}. Dòng 3 chứa mm. Mỗi dòng thao tác có hai hoặc ba số.

  • l r: hỏi minimum trên đoạn vòng từ ll đến rr.
  • l r v: cộng vv vào đoạn vòng từ ll đến rr.

Nếu l>rl>r, đoạn gồm l,l+1,…,n−1,0,1,…,rl,l+1,\ldots,n-1,0,1,\ldots,r.

Output

In minimum cho mỗi dòng thao tác có đúng hai số.

Subtask

  • 20 điểm: n,m≤50n,m\le50.
  • 30 điểm: n,m≤5000n,m\le5000.
  • 50 điểm: 1≤n≤2⋅1051\le n\le2\cdot10^5, 0≤m≤2⋅1050\le m\le2\cdot10^5, ∣ai∣,∣v∣≤106|a_i|,|v|\le10^6.

Ví dụ

Input

4
1 2 3 4
4
3 0
3 0 -1
0 1
2 1

Output

1
0
0

Giải thích

Đoạn vòng từ 3 đến 0 gồm các vị trí 3 và 0, minimum ban đầu là 1. Sau khi cộng −1-1 lên đúng đoạn đó, truy vấn [0,1][0,1] và đoạn vòng [2,1][2,1] đều có minimum bằng 0.