Cho dãy số A gồm \(n\) phần tử là các số nguyên dương \(a_{1},\ a_{2},\ \ldots,\ a_{n}\). Thực hiện lần lượt \(q\) thao tác trên dãy số đó, thao tác thứ i sẽ có một trong hai loại như sau:
+ Loại 1: \(1\ p_{i}\ m_{i}\ x_{i}\) tăng giá trị phần tử tại vị trí \(p_{i}\) tới vị trí \(m_{i}\) của dãy A thêm \(x_{i}\) đơn vị.
+ Loại 2: \(2\ u_{i}\ v_{i}\), tính tổng các phần tử của dãy số A từ vị trí \(u_{i}\) tới vị trí \(v_{i}\).
Yêu cầu: Viết chương trình thực hiện \(q\) thao tác và ghi ra kết quả của các thao tác Loại 2.
Dữ liệu vào:
+ Dòng đầu tiên ghi hai số nguyên dương \(n,\ q\ (0\ < \ n,q\ \leq \ 10^{3})\);
+ Dòng thứ hai là một dãy số gồm \(n\) số nguyên dương \(a_{i}\) \((0 < a_{i} \leq 10^{12})\);
+ \(q\) dòng tiếp theo (từ dòng thứ 3 trở đi): với dòng thứ \(i\) số đầu tiên là 1 hoặc 2.
Nếu số 1 thì tiếp sau là 3 số nguyên \(p_{i}\ m_{i}\) và \(x_{i}\ (1 \leq p_{i} \leq m_{i} \leq n\ ;1 \leq x_{i} \leq \ 10^{9})\);
Nếu số 2 thì theo sau là 2 số nguyên \(u_{i}\ v_{i}\ (1 < u_{i} \leq v_{i} \leq n)\).
Kết quả:
+ Gồm nhiều dòng, mỗi dòng ghi kết quả tương ứng với thao tác loại 2.
Ví dụ:
Input | Output |
---|---|
8 4 5 6 9 1 2 1 10 15 1 4 7 15 2 3 8 1 2 5 17 2 1 6 | 98 137 |
Code tích cực |
---|
Trong 24h |
Trong 7 ngày |
|
Trong 30 ngày |
|
Thống kê |
---|
AC/Sub: 97887/180710 Pascal: 17121 C++: 130348 Python: 33199 Lượt xem/tải tests: 38905 |