HackDream Purple 01-B: Ngẩn ngơ

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 0.8s
Python 2 4.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Necrophos là một cậu bé thích suy nghĩ lung tung. Trong lúc các bạn đang cố gắng học tập các kiến thức khó thì cậu lại muốn đào sâu ý nghĩa của những thứ đơn giản.

Hôm nay cậu để ý đến dãy số ~2, 6, 12, 20, 30, 42, ...~ mà phần tử thứ ~i~ có giá trị bằng ~i*(i+1)~.

Necrophos có tìm ra điều gì không thì không rõ, chỉ biết rằng sau đó cậu đã đi đố các bạn cùng lớp một bài toán như sau: Cho một dãy ~n~ số nguyên ~a_i~, ban đầu tất cả các phần tử có giá trị bằng ~0~. Cho ~q~ truy vấn có dạng:

  • ~l~ ~r~ ~k~: Tăng ~a_l~ lên ~(1*2)*k~, tăng ~a_{l+1}~ lên ~(2*3)*k~, tăng ~a_{l+2}~ lên ~(3*4)*k~, ..., tăng ~a_r~ lên ~((r-l+1)*(r-l+2))*k~.

Yêu cầu

Cho ~n~ và ~q~ truy vấn. Sau khi thực hiện ~q~ truy vấn, đưa ra giá trị sau cùng của toàn bộ dãy.

Input

  • Dòng đầu tiên chứa 2 số nguyên dương ~n~, ~q~ ~(1≤n≤10^6, 1≤q≤10^6)~ cách nhau một dấu cách.
  • ~q~ dòng sau, mỗi dòng là một truy vấn có dạng ~l~ ~r~ ~k~ ~(1≤l≤r≤n, 1≤k≤10^9)~.

Output

Một dòng duy nhất chứa ~n~ số nguyên ~a_i~ sau khi thực hiện ~q~ truy vấn, mỗi phần tử cách nhau một dấu cách.

Lưu ý: dữ liệu đảm bảo giá trị sau cùng của mỗi phần tử không vượt quá ~10^{18}~.

Sample Input

5 3
1 3 1
2 5 3
2 3 2

Sample Output

2 16 42 36 60

Giải thích

Ban đầu dãy có 5 phần tử là ~[0, 0, 0, 0, 0]~.

Sau truy vấn đầu tiên, dãy trở thành ~[2, 6, 12, 0, 0]~.

Sau truy vấn thứ hai, dãy trở thành ~[2, 12, 30, 36, 60]~.

Sau truy vấn cuối cùng, dãy trở thành ~[2, 16, 42, 36, 60]~.

Subtask

  • Có 30% số test ứng với 30% số điểm có ~1≤n,q≤10^3~;
  • Có 30% số test ứng với 30% số điểm có ~1≤n,q≤10^5~, mọi truy vấn có ~k=1~;
  • Có 20% số test ứng với 20% số điểm có ~1≤n,q≤10^5~;
  • 20% số test còn lại tương ứng với 20% số điểm không có giới hạn gì thêm.

Bình luận đầu tiên

Bình luận

Không có bình luận nào.