DÃY SỐ

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}\)\(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

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. npk1605 (5/10)
  2. hungeazy08 (4/26)
  3. tung (2/5)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]