Chọn ĐTQG PTNK 2026 - Nhảy đảo

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Có ~N~ đảo được đánh số từ ~1~ đến ~N~. đảo ~i~ có độ cao ~h_i~, số điểm ~c_i~ và hai tham số ~a_i, b_i~.

Bạn được chọn một đảo bất kỳ làm đảo bắt đầu. Khi đến một đảo, bạn nhận số điểm của đảo đó. Từ đảo ~i~, bạn có thể nhảy tới đảo ~j~ nếu đồng thời thỏa mãn:

  • ~i+a_i \le j \le i+b_i~.

  • ~D_1 \le h_j-h_i \le D_2~.

Các đảo nằm ngoài đoạn ~[1,N]~ được bỏ qua. Bạn có thể dừng lại tại bất kỳ thời điểm nào.

Hãy tìm tổng số điểm lớn nhất có thể nhận được.

Input

  • Dòng đầu tiên chứa ba số nguyên ~N, D_1, D_2~ ~(1 \le N \le 5 \cdot 10^5, 0 \le D_1 \le D_2 \le 10^9)~.

  • ~N~ dòng tiếp theo, dòng thứ ~i~ chứa bốn số nguyên ~h_i, c_i, a_i, b_i~ ~(0 \le h_i,c_i \le 10^9, 1 \le a_i \le b_i \le N)~.

Output

In ra một số nguyên duy nhất là tổng số điểm lớn nhất có thể nhận được.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~N \le 2000~
2 ~20\%~ ~h_i < h_{i+1}~ với mọi ~1 \le i < N~
3 ~20\%~ ~D_1=0, D_2=10^9~
4 ~40\%~ Không có ràng buộc gì thêm

Sample Input 1

6 2 5
1 4 1 3
3 7 2 3
6 5 1 2
4 6 1 2
8 9 1 1
10 3 1 1

Sample Output 1

23

Notes

Một cách đi tối ưu là chọn đảo ~1~ làm điểm bắt đầu, sau đó lần lượt nhảy qua các đảo ~2,5,6~. Các bước nhảy đều thỏa mãn cả giới hạn chỉ số và giới hạn chênh lệch độ cao. Tổng điểm nhận được là ~4+7+9+3=23~.


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.