Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Tăng dần vị trí

Dễ

  • 100 Điểm
  • 100% Tỉ lệ AC
  • 1 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Bạn được giao nhiệm vụ xử lý một mảng gồm \(N\) số nguyên dương. Trải qua thời gian, mảng này liên tục bị can thiệp với các thao tác "tăng có quy luật" hoặc "truy vấn tổng đoạn".

Cụ thể, bạn cần thực hiện \(Q\) truy vấn theo hai loại sau:

  • Loại 1: 1 a b --- Tăng đoạn \([a, b]\) một cách đặc biệt: phần tử ở vị trí \(a\) tăng thêm \(1\), vị trí \(a+1\) tăng thêm \(2\), ..., vị trí \(b\) tăng thêm \((b - a + 1)\).
  • Loại 2: 2 a b --- Trả về tổng các phần tử trong đoạn \([a, b]\) hiện tại của mảng.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(N\) và \(Q\) \((1 \leq N, Q \leq 2 \cdot 10^5)\) --- kích thước của mảng và số lượng truy vấn.
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \ldots, A_N\) \((1 \le A_i \le 10^9)\) --- các phần tử ban đầu của mảng.
  • \(Q\) dòng tiếp theo, mỗi dòng là một truy vấn có định dạng:

  • 1 a b --- tăng đoạn \([a, b]\) theo quy luật như mô tả trên.

  • 2 a b --- truy vấn tổng đoạn \([a, b]\).

Output

Với mỗi truy vấn loại 2, in ra một dòng chứa kết quả --- tổng các phần tử từ vị trí \(a\) đến \(b\) trong mảng hiện tại.

Example

Test 1

Input
5 3
4 2 3 1 7
2 1 5
1 1 5
2 1 5
Output
17
32

Scoring

  • Subtask 1 (50% số điểm): \(N, Q \leq 2000\).
  • Subtask 2 (50% số điểm): Không có ràng buộc gì thêm.

Bình luận

Chưa có bình luận nào.