INCPOS - Đếm vị trí tăng

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Cho một dãy số ~A~ độ dài ~N~. Ta gọi một vị trí ~i~ ~(1 ≤ i < N)~ là một vị trí tăng nếu ~A_i > A_{i+1}~.

Cho ~Q~ truy vấn, mỗi truy vấn được cho bởi ba số nguyên ~l, r, x~, yêu cầu cộng thêm giá trị ~x~ vào tất cả các phần tử có vị trí từ ~l~ đến ~r~. Hãy đếm số vị trí tăng sau khi thực hiện xong mỗi truy vấn.

Input

  • Dòng đầu tiên ghi hai số nguyên ~N, Q~ ~(1 ≤ N, Q ≤ 200000)~ - độ dài dãy ~A~ và số truy vấn;
  • Dòng tiếp theo gồm ~N~ số nguyên ~A_1, A_2, ..., A_N~ ~(1 ≤ A_i ≤ 10^9)~ mô tả dãy ~A~;
  • ~Q~ dòng tiếp theo, dòng thứ ~i~ gồm ba số nguyên ~l_i, r_i, x_i~ ~(1 ≤ l_i ≤ r_i ≤ N, |x_i| ≤ 10^9)~ mô tả truy vấn thứ ~i~.

Giới hạn:

  • Subtask #1 ~(40\%\text{ số điểm}): N, Q ≤ 2000~;
  • Subtask #2 ~(60\%\text{ số điểm}):~ Không có ràng buộc gì thêm.

Output

  • In ra ~Q~ dòng, dòng thứ ~i~ cho biết số vị trí tăng sau khi thực hiện xong truy vấn thứ ~i~.

Sample

Input #1
7 3
3 5 4 2 4 6 7
4 6 2
1 4 3
2 2 -5
Output #1
2
3
3

Hint

  • Sau khi thực hiện xong truy vấn thứ nhất, dãy số trở thành ~3, 5, 4, 4, 6, 8, 7~, các vị trí tăng là ~2, 6~;
  • Sau khi thực hiện xong truy vấn thứ hai, dãy số trở thành ~6, 8, 7, 7, 6, 8, 7~, các vị trí tăng là ~2, 4, 6~;
  • Sau khi thực hiện xong truy vấn thứ ba, dãy số trở thành ~6, 3, 7, 7, 6, 8, 7~, các vị trí tăng là ~1, 4, 6~.

Problem source: Kc97ble - Free Contest


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.