Nguồn: Big-O
Bạn được giao nhiệm vụ quản lý một tài khoản gồm n cổ phiếu, trong đó mỗi cổ phiếu có giá trị ban đầu là a_i. Các cổ phiếu sẽ trải qua q ngày giao dịch trên sàn, trong đó vào ngày thứ j, một trong ba sự kiện sau có thể xảy ra:
1: Toàn bộ cổ phiếu từ vị trí u đến v rớt giá xuống còn 0.2: Chủ tài khoản cần biết số tiền thu được nếu bán các cổ phiếu từ vị trí u đến v.3: Các cổ phiếu từ vị trí u đến v đều tăng giá trị thêm một lượng là d.Đầu vào:
Dòng đầu tiên chứa hai số n (1≤n≤105) và q (1≤q≤105) — số lượng cổ phiếu và số ngày.
Dòng thứ hai chứa n số nguyên — a_i (∀i,1≤i≤n,0≤ai≤109) là giá trị ban đầu của cổ phiếu thứ i.
Trong q dòng tiếp theo, dòng thứ j chứa thông tin về sự kiện ở ngày thứ j:
1 hoặc 2. Số đầu tiên là loại sự kiện (1 hoặc 2). Số thứ hai là giá trị u. Số cuối cùng là giá trị v.3. Số đầu tiên là 3. Ba số tiếp theo lần lượt là u, v và d.Điều kiện: 1≤u,v≤n,u≤v,0≤d≤106.
Đầu ra:
Với mỗi thao tác thuộc loại 2, in ra tổng giá trị của các cổ phiếu từ vị trí u đến v.
Giải thích:
Ban đầu, dãy n cổ phiếu có các giá trị như sau: 1 2 3 4 5 6
Sau mỗi ngày, giá trị của các cổ phiếu thay đổi như sau:
Ví dụ 1:
Đầu vào:
6 6
1 2 3 4 5 6
2 3 5
2 1 6
3 3 4 1
2 3 4
1 3 4
2 3 4
Đầu ra:
12
21
9
0