Biến đổi modulo đoạn
Xem PDF
Điểm:
1900
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho mảng \(A\) gồm \(N\) số nguyên dương \(A_1, A_2, \dots, A_N\). Bạn cần thực hiện \(Q\) truy vấn thuộc một trong ba loại sau:
- \(1 \ l \ r \ x\): Gán \(A_i \leftarrow A_i \bmod x\) với mọi \(i\) thuộc đoạn \([l, r]\).
- \(2 \ l \ r \ x\): Gán \(A_i \leftarrow x\) với mọi \(i\) thuộc đoạn \([l, r]\).
- \(3 \ l \ r\): Tính tổng \(\sum_{i=l}^r A_i\).
Đầu vào
- Dòng đầu tiên chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- Dòng thứ hai chứa \(N\) số nguyên dương \(A_1, A_2, \dots, A_N\) (\(1 \le A_i \le 10^9\)).
- \(Q\) dòng tiếp theo, mỗi dòng mô tả một truy vấn theo định dạng nêu trên (\(1 \le l \le r \le N\), \(1 \le x \le 10^9\)).
Đầu ra
- Với mỗi truy vấn loại 3, in ra một dòng duy nhất chứa kết quả của phép tính.
Giới hạn
- Trong tất cả các testcase, \(1 \le N, Q \le 10^5\) và \(1 \le A_i, x \le 10^9\).
Ví dụ 1
Input
5 5
1 2 3 4 5
1 3 5 3
3 1 5
2 1 3 10
1 2 5 4
3 1 5
Output
6
17
Giải thích
- Ban đầu mảng \(A = [1, 2, 3, 4, 5]\).
- Truy vấn 1: Thực hiện modulo cho đoạn \([3, 5]\) với \(x = 3\). Mảng trở thành \([1, 2, 0, 1, 2]\).
- Truy vấn 2: Tổng đoạn \([1, 5]\) là \(1 + 2 + 0 + 1 + 2 = 6\).
- Truy vấn 3: Gán đoạn \([1, 3]\) bằng \(10\). Mảng trở thành \([10, 10, 10, 1, 2]\).
- Truy vấn 4: Thực hiện modulo cho đoạn \([2, 5]\) với \(x = 4\). Mảng trở thành \([10, 2, 2, 1, 2]\) (vì \(10 \bmod 4 = 2\), \(1 \bmod 4 = 1\), \(2 \bmod 4 = 2\)).
- Truy vấn 5: Tổng đoạn \([1, 5]\) là \(10 + 2 + 2 + 1 + 2 = 17\).
Bình luận