Cho một cột ~N~ số thẳng đứng, phần tử dưới cùng ở độ cao ~1~, phần tử trên cùng ở độ cao ~N~. Có ~2~ loại truy vấn:
- ~S~ ~x~: xóa đi phần tử ở độ cao ~x~, sau đó các phần tử phía trên sẽ dồn xuống và tất nhiên các phần tử bị dồn xuống sẽ giảm một đơn vị độ cao (~x~ không vượt quá số phần tử hiện tại của dãy số)
- ~Q~ ~x~ ~y~: trong các phần tử thuộc các nhóm từ ~x~ đến ~y~, hãy tìm phần tử có giá trị lớn nhất ~(x \le y)~
Nhóm được định nghĩa như sau: Tại một thời điểm nào đó, ta nói phần tử ở độ cao ~i~ thuộc nhóm ~x~ nếu độ cao phần tử đó đã giảm ~x~ đơn vị so với độ cao ban đầu
Input
- Dòng đầu chứa số ~N~ là số phần tử ban đầu của dãy số (~1 \le N \le 10^5~)
- ~N~ dòng sau chứa ~N~ số nguyên là giá trị của các phần tử ~(0 \le A_i \le 10^{9})~
- Dòng tiếp theo chứa số ~M~ là số truy vấn (~1 \le M \le 10^5~)
- ~M~ dòng tiếp theo chứa một trong hai loại truy vấn như định dạng trên. Chú ý là với truy vấn ~x \dots y~ thì ~x~ và ~y~ có thể âm hoặc dương
Output
- In ra kết quả cho các truy vấn ~Q~ (mỗi số in trên một dòng). Nếu trong dãy số không tồn tại phần tử nào thuộc nhóm từ ~x~ đến ~y~ thì in ra "NONE"
Sample Input 1
5
1
2
3
4
5
5
Q 0 0
S 3
Q 0 0
S 3
Q 2 2
Sample Output 1
5
2
5
Sample Input 2
8
1
5
7
2
6
4
5
3
10
S 5
Q 0 1
Q 0 1
Q 2 2
S 5
Q 1 2
Q 1 1
Q 2 3
S 4
Q 1 1
Sample Output 2
7
7
NONE
5
NONE
5
NONE
Note
Giải thích test ~1~: ban đầu các phần tử theo thứ tự từ dưới lên trên mang giá trị ~1~ ~2~ ~3~ ~4~ ~5~.
Ban đầu các số chưa bị thay đổi vị trí nên tất cả đều thuộc nhóm ~0~. ~Q~ ~0~ ~0~ ~\rightarrow~ ~5~
Sau khi bắn phần tử thứ ~3~ dãy còn lại là ~1~ ~2~ ~4~ ~5~ với ~(1, 2)~ thuộc nhóm ~0~ và ~(4, 5)~ thuộc nhóm ~1~. Khi đó thực hiện ~Q~ ~0~ ~0~ ~\rightarrow~ ~2~
Tiếp tục bắn phần tử thứ ~3~, dãy còn lại ~1~ ~2~ ~5~ với ~(1, 2)~ thuộc nhóm ~0~ và ~(5)~ thuộc nhóm ~2~ nên ~Q~ ~2~ ~2~ ~\rightarrow~ ~5~
Bình luận