Tăng đầu giảm cuối
Xem dạng PDFĐộ khó: Trung bình (2/4 điểm)
📖 Bài giải chi tiết: 👉 Bấm vào đây để xem lời giải cụ thể của bài này trên blog
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới bấm vào xem bài giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
Cho một dãy số ~a_1, a_2, \ldots, a_n~, ban đầu ~a_i = 0\ \forall i = 1..n~ và ~m~ truy vấn dạng ~Q(u, v, k)~ tương ứng tăng các giá trị ~a_u, a_{u+1}, \ldots, a_v~ lên một lượng bằng ~k~.
Ví dụ: Cho dãy ~a = [0, 0, 0]~, sau truy vấn ~Q(2, 3, 30)~ thì dãy ~a~ trở thành ~a = [0, 30, 30]~.
Yêu cầu: Sau ~m~ truy vấn, hãy tìm giá trị lớn nhất của dãy ~a~.
Dữ liệu vào
- Dòng đầu ghi hai số nguyên dương ~n, m~ ~(3 \le n \le 10^7;\ 1 \le m \le 2 \times 10^5)~;
- ~m~ dòng tiếp theo, dòng thứ ~i~ ghi truy vấn ~i~ gồm ba số nguyên không âm ~u, v, k~ ~(1 \le u \le v \le n;\ 0 \le k \le 10^9)~.
Kết quả
- Ghi ra một số nguyên duy nhất là giá trị lớn nhất của dãy ~a~ sau ~m~ truy vấn.
Sample Input 1
5 3
1 2 100
2 5 100
3 4 100
Sample Output 1
200
Giải thích
- Dãy ban đầu: ~a = [0, 0, 0, 0, 0]~;
- Truy vấn 1: ~a = [100, 100, 0, 0, 0]~;
- Truy vấn 2: ~a = [100, 200, 100, 100, 100]~;
- Truy vấn 3: ~a = [100, 200, 200, 200, 100]~.
Giá trị lớn nhất là ~200~.
Nguồn: LuyenCode.
Bình luận