Điều chỉnh mảng

Xem dạng PDF

Mô 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:

  1. 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~.
  2. 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ụ:

  1. Mảng ban đầu: [4, 2, 3, 1, 7].

  2. 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.
  3. 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].
  4. 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

Hãy đọc nội quy trước khi bình luận.

Không có bình luận tại thời điểm này.

Gửi bài giải
Đ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
Kotlin
Pascal
PyPy
Python
Scratch