#5229. Truy vấn tổng (SUMQ)

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 gồm N phần tử, ban đầu tất cả đều bằng 0 . Bạn cần thực hiện C thao tác thuộc hai loại:

  1. Loại 0 (update): 0 p q v - Cộng thêm giá trị v vào mỗi phần tử của mảng trong đoạn từ chỉ số p đến q (bao gồm cả p q ).
  2. Loại 1 (query): 1 p q - Tính tổng của tất cả các phần tử trong đoạn từ chỉ số p đến q (bao gồm cả p q ).

Các chỉ số của mảng là 1-based.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên N C ( 1 \le N, C \le 100000 ).
  • C dòng tiếp theo, mỗi dòng là một truy vấn như mô tả ở trên.
  • Truy vấn loại 0: 0 p q v ( 1 \le p \le q \le N, 1 \le v \le 1000 ).
  • Truy vấn loại 1: 1 p q ( 1 \le p \le q \le N ).

Kết quả: Với mỗi truy vấn loại 1, ghi ra tổng tìm được trên một dòng riêng.

Ví dụ:

Dữ liệu:

8 6
0 2 4 26
0 4 5 80
1 2 5
0 3 5 78
1 3 6
1 1 8

Kết quả:

162
390
470