#5226. Đoạn và cập nhật lười (Mã bài: ITLAZY)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một mảng A gồm n phần tử, ban đầu tất cả đều bằng 0 . Bạn cần thực hiện q truy vấn thuộc một trong hai loại sau:

  1. Loại 1 (update): 1 u v val - Cộng val vào tất cả các phần tử của mảng A từ chỉ số u đến v .
  2. Loại 2 (query): 2 u v - Tìm giá trị lớn nhất trong các phần tử của mảng A từ chỉ số u đến v .

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên n q ( 1 \le n, q \le 100000 ).
  • q dòng tiếp theo, mỗi dòng là một truy vấn:
    • Nếu là truy vấn loại 1, dòng sẽ có dạng 1 u v val ( 1 \le u \le v \le n , 1 \le val \le 10000 ).
    • Nếu là truy vấn loại 2, dòng sẽ có dạng 2 u v ( 1 \le u \le v \le n ).

Kết quả: Với mỗi truy vấn loại 2, in ra giá trị lớn nhất tìm được trên một dòng riêng.

Ví dụ:

Dữ liệu:

6 3
1 2 4 10
2 3 5
2 1 2

Kết quả:

10
10