Đổi tàu điện ngầm
Xem dưới dạng PDF
Gửi bài giải
Điểm:
30
Giới hạn thời gian:
1.5s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Bình muốn di chuyển bằng hệ thống tàu điện ngầm từ ga xuất phát \(S\) đến ga đích \(E\) của thành phố.
Thành phố có \(N\) ga tàu (được đánh số từ \(1\) đến \(N\)) và \(K\) tuyến tàu điện ngầm chạy song song. Tuyến thứ \(i\) chạy qua một danh sách tuần tự gồm \(P_i\) ga tàu.
Quy tắc di chuyển và đổi tàu:
- Đi tàu giữa hai ga liên tiếp trên cùng một tuyến tàu điện ngầm: Chi phí bằng \(0\).
- Đổi từ tuyến tàu điện ngầm này sang tuyến tàu điện ngầm khác tại cùng một ga giao cắt: Chi phí bằng \(1\).
- Khi xuất phát tại ga \(S\), Bình có thể bắt đầu lên bất kỳ tuyến tàu nào đi qua ga \(S\) mà không tốn phí đổi tàu ban đầu (chi phí đổi tàu bằng \(0\)).
Hãy giúp Bình tìm số lần đổi tàu tối thiểu để đi từ ga \(S\) đến ga \(E\).
Định dạng đầu vào
- Dòng đầu chứa bốn số nguyên \(N, K, S, E\) (\(1 \le N \le 10^5\), \(1 \le K \le 10^5\), \(1 \le S, E \le N\)).
- \(K\) dòng tiếp theo, dòng thứ \(i\) mô tả tuyến tàu điện thứ \(i\): Bắt đầu bằng số nguyên \(P_i\) (\(P_i \ge 2\)) là số lượng ga của tuyến, theo sau là \(P_i\) số nguyên mô tả các ga tàu trên tuyến theo thứ tự di chuyển.
- Tổng số ga trên tất cả các tuyến (\(P_1 + P_2 + \dots + P_K\)) không vượt quá \(2 \cdot 10^5\).
Định dạng đầu ra
- Một số nguyên duy nhất là số lần đổi tàu tối thiểu. Nếu không thể đi tới, in ra \(-1\).
Ràng buộc
| Subtask | Tỉ lệ điểm | Ràng buộc |
|---|---|---|
| 1 | 40% | \(N, K \le 1000\), \(P_1 + \dots + P_K \le 2000\) |
| 2 | 60% | Không có ràng buộc gì thêm |
Ví dụ
Input:
4 2 1 4
3 1 2 3
2 3 4
Output:
1
Nhận xét