Điều chỉnh mảng
Xem dạng PDFMô tả bài toán: Truy vấn mảng với giá trị tăng dần theo chỉ số
Nhiệm vụ của bạn là duy trì một mảng gồm ~n~ giá trị và xử lý hiệu quả các truy vấn sau:
Tăng các giá trị trong đoạn ~[a, b]~:
- Tăng giá trị tại vị trí ~a~ lên ~1~, vị trí ~a+1~ lên ~2~, vị trí ~a+2~ lên ~3~, và tiếp tục như vậy cho đến ~b~.
Tính tổng các giá trị trong đoạn ~[a, b]~:
- Tính tổng các giá trị của mảng trong đoạn ~[a, b]~.
Input:
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~q~: kích thước mảng và số lượng truy vấn.
- Dòng thứ hai chứa ~n~ giá trị ~t_1, t_2, ..., t_n~: nội dung ban đầu của mảng.
- Tiếp theo là ~q~ dòng mô tả các truy vấn:
1 a b
: Tăng các giá trị trong đoạn ~[a, b]~ lên ~1, 2, ..., b-a+1~.2 a b
: Tính tổng các giá trị trong đoạn ~[a, b]~.
Output:
- Với mỗi truy vấn loại
2
, in ra tổng của đoạn được yêu cầu.
Constraints:
- ~1 \leq n, q \leq 2 \cdot 10^5~
- ~1 \leq t_i \leq 10^6~
- ~1 \leq a \leq b \leq n~
Ví dụ:
Input:
5 3
4 2 3 1 7
2 1 5
1 1 5
2 1 5
Output:
17
32
Giải thích ví dụ:
Mảng ban đầu:
[4, 2, 3, 1, 7]
.Truy vấn
2 1 5
:- Tính tổng các giá trị trong đoạn ~[1, 5]~: ~4 + 2 + 3 + 1 + 7 = 17~.
- Kết quả là
17
.
Truy vấn
1 1 5
:- Tăng các giá trị trong đoạn ~[1, 5]~ lên ~1, 2, 3, 4, 5~:
- ~4 + 1 = 5~,
- ~2 + 2 = 4~,
- ~3 + 3 = 6~,
- ~1 + 4 = 5~,
- ~7 + 5 = 12~.
- Mảng sau cập nhật:
[5, 4, 6, 5, 12]
.
- Tăng các giá trị trong đoạn ~[1, 5]~ lên ~1, 2, 3, 4, 5~:
Truy vấn
2 1 5
:- Tính tổng các giá trị trong đoạn ~[1, 5]~: ~5 + 4 + 6 + 5 + 12 = 32~.
- Kết quả là
32
.
Bình luận
Gửi bài giải
Kotlin
PyPy
Điểm:
10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
CSES
Dạng bài
CSES
Ngôn ngữ cho phép
C
C++
Java
Pascal
Python
Scratch