Educational Segment Tree Contest - ITLAZY

View as PDF

Submit solution

Points: 0.15
Time limit: 2.0s
Memory limit: 256M
Input: stdin
Output: stdout

Problem source:
Educational Segment Tree Contest - Anh Long
Problem type
Allowed languages
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

Comments

Please read the guidelines before commenting.