Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập robothaiduong2324

Robot

Dễ Tham lamHeap, Set, Map, ...

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

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\).

Input

Nhập Dữ liệu vào 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.

  • Các số trên cùng dòng cách nhau ít nhất một dấu trống (space).

Ràng buộc:

  • Có \(4\) trong \(6\) test (\(66{,}67\%\)) thỏa mãn \(1 \le N \le 100\).

  • Có \(2\) trong \(6\) test (\(33{,}33\%\)) còn lại thỏa mãn \(100 < N \le 10^5\).

Output

In ra \(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 dữ liệu vào.

Example

Input:

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

Output:

1
-1

Note

Bộ dữ liệu thứ nhất: robot cách \(Z\) là \(L = 8\), có \(P = 4\) năng lượng, các trạm cách \(Z\) lần lượt \(6, 4, 2\) với khả năng cung cấp \(4, 3, 6\). Robot đi tới trạm cách \(Z\) là \(6\) (cách điểm xuất phát \(2\)) thì còn \(2\) năng lượng. Nếu dừng ở trạm này và nạp thêm \(4\) thì robot có \(6\) năng lượng, đúng bằng quãng đường còn lại tới \(Z\) (\(6\)). Vậy chỉ cần dừng \(1\) trạm.

Bộ dữ liệu thứ hai: robot cách \(Z\) là \(5\), có \(3\) năng lượng, trạm duy nhất cách \(Z\) là \(3\) (cách điểm xuất phát \(2\)) có thể cấp tối đa \(1\). Tại trạm robot còn \(1\) năng lượng, nạp thêm \(1\) thành \(2\) nhưng cần đi tiếp \(3\) nên không thể đến được. Kết quả là \(-1\).

Bình luận

Chưa có bình luận nào.