Thẻ nhảy
Đề bài
Mô tả
Trên một dải băng vô hạn, các ô được đánh số bởi các số nguyên (âm, không và dương). Ban đầu bạn đứng ở ô .
Có tấm thẻ. Thẻ thứ có độ dài và giá . Nếu trả đồng, bạn được dùng thẻ thứ : khi đó từ ô bất kỳ bạn có thể nhảy tới ô hoặc ô .
Bạn muốn mua một tập thẻ sao cho xuất phát từ ô , bạn có thể tới được mọi ô của dải băng (được phép đi qua các ô trung gian). Hãy tìm tổng chi phí nhỏ nhất để làm được điều đó, hoặc cho biết điều đó là không thể.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số tấm thẻ.
- Dòng thứ hai chứa số nguyên : độ dài nhảy của từng thẻ.
- Dòng thứ ba chứa số nguyên : giá của từng thẻ.
Dữ liệu ra
In ra một số nguyên duy nhất là tổng chi phí nhỏ nhất. Nếu không thể mua tập thẻ nào thoả mãn, in ra .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 100 99 9900 1 1 1 |
2 | Mua một thẻ là không đủ: chẳng hạn chỉ với thẻ độ dài thì mọi ô tới được đều là bội của . Mua thẻ và thẻ với tổng giá thì tới được mọi ô. |
| 5 10 20 30 40 50 1 1 1 1 1 |
-1 | Mọi độ dài đều chia hết cho nên dù mua tất cả các thẻ, bạn cũng chỉ tới được các ô là bội của . |
| 7 15015 10010 6006 4290 2730 2310 1 1 1 1 1 1 1 10 |
6 | Mua thẻ độ dài tốn đồng. Rẻ hơn là mua cả thẻ đầu tiên với tổng giá : khi đó tập độ dài thu được cho phép tới mọi ô. |
Bình luận