Robot (đề HSG 12 Hải Dương 2023)

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
Input: BAI5.INP
Output: BAI5.OUT

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Một robot cứu hỏa xuất phát tại trạm cứu hỏa ~A~ cần đến thị trấn ~Z~ (nơi xảy ra hỏa hoạn) để làm nhiệm vụ cứu hỏa. Đường đi của robot là một đường thẳng, khi xuất phát robot cách thị trấn ~Z~ một khoảng là ~L~ đơn vị độ dài và robot chứa ~P~ đơn vị năng lượng; cứ đi mỗi đơn vị khoảng cách robot phải tốn 1 đơn vị năng lượng. Trên con đường từ trạm cứu hỏa ~A~ đến thị trấn ~Z~ có ~N~ trạm cung cấp năng lượng được đánh số từ ~1~ đến ~N~. Trạm cung cấp năng lượng thứ ~i~ cách thị trấn ~Z~ một khoảng bằng ~D_i~ đơn vị độ dài và có khả năng cung cấp tối đa ~C_i~ đơn vị năng lượng.

Robot cần đến thị trấn nhanh nhất để kịp thời cứu hỏa nên cần giảm thiểu tối đa việc dừng lại tại các trạm cung cấp để tiếp thêm năng lượng nếu có thể. Giả thiết rằng robot không có giới hạn về lượng năng lượng nạp thêm tại các trạm cung cấp.

Yêu cầu: Xác định số lượng tối thiểu các trạm cung cấp năng lượng mà robot phải dừng lại tiếp thêm năng lượng để có thể đến được thị trấn ~Z~.

Dữ liệu

Nhập vào từ file văn bản BAI5.INP chứa các dòng dữ liệu sau:

  • Dòng đầu tiên chứa số ~T~ (~T \le 5~) là số lượng bộ dữ liệu.
  • Sau đó là ~T~ nhóm dòng, mỗi nhóm là một bộ dữ liệu có dạng:
    • Dòng 1: chứa số nguyên dương ~N~ (~1 \le N \le 10^5~) là số trạm cung cấp năng lượng.
    • Trong ~N~ dòng tiếp theo, mỗi dòng chứa hai số ~D_i~ và ~C_i~ (~1 \le D_i \le 10^6~, ~1 \le C_i \le 1000~) là khoảng cách từ trạm cung cấp thứ ~i~ đến thị trấn ~Z~ và khả năng cung cấp năng lượng của trạm ấy. Dữ liệu đảm bảo ~D_1 > D_2 > \ldots > D_N~.
    • Dòng cuối của nhóm chứa hai số nguyên ~L~ và ~P~ (~D_1 \le L \le 10^6~, ~2 \le P \le 10^6~) là khoảng cách từ trạm cứu hỏa ~A~ đến thị trấn ~Z~ và lượng năng lượng của robot lúc xuất phát.

Kết quả

Ghi ra file văn bản BAI5.OUT gồm ~T~ dòng, mỗi dòng ghi số lượng tối thiểu các trạm cung cấp năng lượng cần dừng lại để tiếp thêm năng lượng sao cho robot có thể đến được thị trấn ~Z~ ứng với mỗi bộ dữ liệu. Với bộ dữ liệu mà robot không thể đến được thị trấn ~Z~ thì ghi -1. Thứ tự in kết quả là thứ tự xuất hiện của bộ dữ liệu trong file BAI5.INP.

Ví dụ

BAI5.INP

2
3
6 4
4 3
2 6
8 4
1
3 1
5 3

BAI5.OUT

1
-1

Giải thích: Ở bộ dữ liệu thứ nhất, robot cách ~Z~ là ~8~ đơn vị và có ~4~ đơn vị năng lượng; các trạm cách ~Z~ lần lượt ~6, 4, 2~ đơn vị với khả năng cung cấp ~4, 3, 6~. Robot dừng tại trạm 1 (cách ~Z~ 6 đơn vị) để nạp thêm 4 đơn vị rồi đi tiếp đến ~Z~.

Giới hạn

  • 70% số test có ~1 \le N \le 100~.
  • 30% số test có ~100 < N \le 10^5~.

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.