Tổng bình phương
Cho dãy số nguyên \(a\) gồm \(N\) phần tử. Nhiệm vụ của bạn là xử lý \(Q\) truy vấn trên dãy, mỗi truy vấn thuộc một trong ba loại sau:
2 u v--- In ra tổng các bình phương phần tử trong đoạn \([u, v]\).1 u v x--- Cộng thêm \(x\) vào tất cả các phần tử trong đoạn \([u, v]\).0 u v x--- Gán tất cả các phần tử trong đoạn \([u, v]\) bằng \(x\).
Input
- Dòng đầu chứa hai số nguyên \(N\) và \(Q\) \((1 \leq N, Q \leq 10^5)\) --- số phần tử của dãy và số lượng truy vấn.
- Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \ldots, a_N\) với \(|a_i| \leq 1000\).
-
\(Q\) dòng tiếp theo, mỗi dòng chứa một truy vấn theo một trong ba định dạng sau:
-
2 u v\((1 \leq u \leq v \leq N)\). 1 u v x\((1 \leq u \leq v \leq N, -1000 \leq x \leq 1000)\).0 u v x\((1 \leq u \leq v \leq N, -1000 \leq x \leq 1000)\).
Output
Với mỗi truy vấn loại 2, in ra một dòng chứa tổng các bình phương phần tử trong đoạn \([u, v]\) tại thời điểm đó.
Example
Test 1
Input
5 5
2 3 1 5 4
2 3 5
1 1 5 -2
2 1 4
0 2 4 3
2 1 5
Output
42
11
31
Note
Sau mỗi truy vấn, mảng \(a\) thay đổi như sau:
- Ban đầu: \(a = [2, 3, 1, 5, 4]\)
- Sau truy vấn 1: in ra \(1^2 + 5^2 + 4^2 = 1 + 25 + 16 = 42\)
- Sau truy vấn 2: cộng \(-2\) cho toàn mảng \(\Rightarrow a = [0, 1, -1, 3, 2]\)
- Sau truy vấn 3: in ra \(0^2 + 1^2 + (-1)^2 + 3^2 = 0 + 1 + 1 + 9 = 11\)
- Sau truy vấn 4: gán phần tử \(2\) đến \(4\) bằng \(3\) \(\Rightarrow a = [0, 3, 3, 3, 2]\)
- Sau truy vấn 5: in ra \(0^2 + 3^2 + 3^2 + 3^2 + 2^2 = 0 + 9 + 9 + 9 + 4 = 31\)
Scoring
- Subtask \(1\) (25% số điểm) : \(N, Q \leq 1000\).
- Subtask \(2\) (25% số điểm) : Không có thao tác loại \(1\).
- Subtask \(3\) (25% số điểm) : Không có thao tác loại \(0\).
- Subtask \(4\) (25% số điểm) : Không có ràng buộc gì thêm.