HSG6 - D. Xếp kẹo


Submit solution

Points: 50
Time limit: 1.0s
Memory limit: 256M

Problem type

Trên bàn có n chiếc đĩa được đánh số từ 1 đến n. Ban đầu, đĩa thứ i chứa i viên kẹo. Trong m ngày tiếp theo, mỗi ngày có một bạn học sinh đến và thay đổi lại các viên kẹo ở một số đĩa. Ngày thứ j, bạn học sinh thứ j đến sẽ thực hiện việc điều chỉnh: có thể lấy bớt một vài viên kẹo hoặc thêm vào trên đĩa một vài viên mà bạn ấy mang theo. Các bạn học sinh này thống nhất với nhau rằng: sau khi thay đổi đoạn liên tiếp các đĩa từ đĩa thứ lj đến đĩa thứ rj đều có cùng số viên kẹo là cj. Bạn học sinh j chỉ thay đổi số kẹo trong các đĩa từ lj tới rj, những đĩa còn lại bạn ấy không thay đổi.

Nếu tổng số kẹo hiện có trên các đĩa thứ lj đến đĩa thứ rj thừa hoặc thiếu so với số kẹo cần thiết để làm cho mỗi đĩa trong đoạn chứa đúng cj viên, thì bạn học sinh sẽ lấy đi đúng số viên kẹo thừa hoặc bổ sung đúng số viên kẹo thiếu.

Sau mỗi ngày, thầy An muốn biết số lượng kẹo đã thay đổi so với ngày hôm trước là bao nhiêu sau khi bạn học sinh hôm đó đã lấy đi hay thêm vào. Hãy lập trình giúp thầy An tính toán giá trị trên nhé!

Dữ liệu vào:

Đọc từ file văn bản XEPKEO.INP gồm:
- Dòng đầu tiên chứa hai số nguyên n và m (1 ≤ n, m ≤ 105)
- m dòng tiếp theo, dòng thứ j chứa ba số nguyên lj, rj, cj (1 ≤ l ≤ r ≤ n, 1 ≤ c ≤ 106).

Dữ liệu ra:

Ghi ra file văn bản XEPKEO.OUT gồm m dòng, dòng thứ j chứa số lượng kẹo đã thay đổi sau khi mà bạn j đã thêm vào hoặc lấy đi bớt so với ngày trước đó.

Ví dụ:
Input:
5 3
1 3 2
2 4 3
1 5 1

Output:
0
1
11

Giải thích:

- Ban đầu: [1, 2, 3, 4, 5].

- Ngày 1: Thay đoạn [1,3] thành 2 -> [2, 2, 2, 4, 5], số lượng kẹo không thay đổi (Tổng cũ 1+2+3=6, Tổng mới 2+2+2=6, Hiệu = 0).

- Ngày 2: Thay đoạn [2,4] thành 3 -> [2, 3, 3, 3, 5], bạn học sinh đã thêm vào 1 viên kẹo (Tổng cũ 2+2+4=8, Tổng mới 3+3+3=9, Hiệu = 1).

- Ngày 3: Thay đoạn [1,5] thành 1 -> [1, 1, 1, 1, 1], bạn học sinh đã lấy đi bớt 11 viên kẹo (Tổng cũ 2+3+3+3+5=16, Tổng mới 1+1+1+1+1=5, Hiệu = 11).

Giới hạn:

- Subtask 1 (20%): n ≤ 1000, m ≤ 1000.
- Subtask 2 (20%): cj = c1, 1 ≤ j ≤ m.
- Subtask 3 (20%): n ≤ 10000, m ≤ 1000.
- Subtask 4 (20%): không có ràng buộc gì thêm.


Comments

There are no comments at the moment.