Educational Segment Tree Contest - ITLAZY

Xem dạng PDF

Gửi bài giải

Điểm: 0,02
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Educational Segment Tree Contest - Anh Long
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Bạn được cho một mảng gồm ~n~ số nguyên. Nhiệm vụ của bạn là xử lí 2 loại truy vấn:

  • Loại 1 có dạng ~1~ ~x~ ~y~ ~val~: Tăng giá trị của các phần tử từ vị trí thứ ~x~ đến vị trí thứ ~y~ trong dãy lên ~val~ đơn vị (~1\le x \le y \le n,1\le val\le10^9~)
  • Loại 2 có dạng ~2~ ~l~ ~r~: In ra phần tử lớn nhất của dãy từ phần tử thứ ~l~ đến phần tử thứ ~r~ (~1\le l\le r\le n~)

Với mỗi truy vấn loại 2, hãy in ra câu trả lời trên một dòng.

Input

  • Dòng đầu tiên là số ~n~ là số phần tử của mảng (~1\le n\le10^5~)
  • Dòng 2 là ~n~ số nguyên là các phần tử của mảng ~a~ (~|a_i|\le10^9~)
  • Dòng 3 là 1 số ~q~ là số truy vấn(~1\le q \le10^5~)
  • ~q~ dòng sau, mỗi dòng là một truy vấn thuộc một trong hai loại trên.

Output

Với mỗi truy vấn loại 2, in ra câu trả lời trên một dòng

Sample Input

3
1 2 3
7
1 1 3 1
1 2 3 4
2 1 3
1 1 1 5
2 1 2
1 1 2 2
2 2 3

Sample Output

8
7
9

Đang tải...