CSES - Range Updates and Sums | Cập nhật đoạn và tính tổng
Xem PDF
Điểm:
1700 (p)
Thời gian:
1.0s
Bộ nhớ:
512M
Input:
bàn phím
Output:
màn hình
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 mỗi giá trị trong đoạn \([a, b]\) lên \(x\).
- Gán mỗi giá trị trong đoạn \([a, b]\) thành \(x\).
- Tính tổng các giá trị trong đoạn \([a,b]\).
Input
- Dòng đầu tiên chứa hai số nguyên \(n\) và \(q\) \((1 \leq n, q \leq 2 \cdot 10^{5})\) - kích cỡ của mảng và số lượng truy vấn.
- Dòng tiếp theo chứa \(n\) số nguyên \(t_1, t_2, \ldots, t_n\) \((1 \leq t_i \leq 10^6)\) - các giá trị ban đầu của mảng.
- \(q\) dòng cuối cùng mô tả truy vấn. Định dạng của mỗi dòng là một trong các kiểu sau:
- \(1\) \(a\) \(b\) \(x\): tăng các phần tử trong đoạn \([a,b]\) lên \(x\)
- \(2\) \(a\) \(b\) \(x\): gán các phần tử trong đoạn \([a,b]\) thành \(x\)
- \(3\) \(a\) \(b\): tính tổng đoạn \([a,b]\)
- Với \(1 \leq a \leq b \leq n\), \(1 \leq t_i, x \leq 10^6\)
Output
- In ra kết quả cho từng truy vấn tính tổng.
Example
Test 1
Input
6 5
2 3 1 1 5 3
3 3 5
1 2 4 2
3 3 5
2 2 4 5
3 3 5
Output
7
11
15
Note
- Truy vấn 1: Tính tổng đoạn \([3,5]\): \(1 + 1 + 5 = 7\)
- Truy vấn 2: Tăng đoạn \([2,4]\) lên \(2\)
- Truy vấn 3: Tính tổng đoạn \([3,5]\): \(3 + 3 + 5 = 11\)
- Truy vấn 4: Gán đoạn \([2,4]\) thành \(5\)
- Truy vấn 5: Tính tổng đoạn \([3,5]\): \(5 + 5 + 5 = 15\)
Bình luận