APIO 2015 - Jakarta Skyscrapers
Xem PDFJakarta có \(N\) tòa nhà chọc trời nằm trên một đường thẳng, đánh số từ \(0\) đến \(N-1\) từ trái sang phải.
Có \(M\) sinh vật gọi là doge, đánh số từ \(0\) đến \(M-1\). Ban đầu doge \(i\) ở tòa nhà \(B_i\) và có năng lượng \(P_i\). Trong một bước nhảy, doge có năng lượng \(p\) đang ở tòa nhà \(b\) có thể nhảy đến \(b+p\) hoặc \(b-p\), miễn là tòa nhà đích có số hiệu trong \([0,N-1]\).
Doge \(0\) cần truyền một tin khẩn cấp tới doge \(1\). Sau khi nhận tin, một doge có thể:
- thực hiện một bước nhảy; hoặc
- truyền tin cho một doge khác đang ở cùng tòa nhà.
Hãy tìm tổng số bước nhảy ít nhất mà tất cả doge phải thực hiện để tin đến được doge \(1\), hoặc cho biết việc đó không thể thực hiện.
Dữ liệu vào
- Dòng đầu chứa \(N,M\).
- \(M\) dòng tiếp theo, dòng thứ \(i\) chứa \(B_i,P_i\).
Dữ liệu ra
In tổng số bước nhảy nhỏ nhất, hoặc -1 nếu không thể truyền tin.
Ràng buộc chung
- \(0\le B_i<N\).
- \(M\ge2\).
Ví dụ
Ví dụ 1
Input
5 3
0 2
1 1
4 1
Output
5
Giải thích
Doge \(0\) nhảy từ tòa nhà \(0\) đến \(2\), rồi đến \(4\) trong hai bước và truyền tin cho doge \(2\). Doge \(2\) nhảy từ \(4\) đến \(3\), \(2\), rồi \(1\) trong ba bước và truyền tin cho doge \(1\). Tổng cộng có năm bước nhảy.
Phân nhóm
| Nhóm | Điểm | Ràng buộc bổ sung |
|---|---|---|
| 1 | 10 | \(1\le N\le10\); \(1\le P_i\le10\); \(2\le M\le3\) |
| 2 | 12 | \(1\le N\le100\); \(1\le P_i\le100\); \(2\le M\le2\,000\) |
| 3 | 14 | \(1\le N\le2\,000\); \(1\le P_i\le2\,000\); \(2\le M\le2\,000\) |
| 4 | 21 | \(1\le N\le2\,000\); \(1\le P_i\le2\,000\); \(2\le M\le30\,000\) |
| 5 | 43 | \(1\le N\le30\,000\); \(1\le P_i\le30\,000\); \(2\le M\le30\,000\) |
Nguồn
Asia-Pacific Informatics Olympiad 2015, bài Jakarta Skyscrapers.
Kỳ thi:
- APIO 2015 (9 Tháng năm, 2015)
Bình luận