Trò chơi
Đề bài
Mô tả
Một trò chơi gồm phần. Để hoàn thành một phần, có thể cần phải hoàn thành trước một số phần khác. Các quan hệ phụ thuộc này không tạo thành chu trình, nên luôn có thể chơi hết toàn bộ trò chơi.
Bạn có chiếc máy tính đặt ở ba nơi khác nhau, đánh số từ đến . Mỗi phần của trò chơi chỉ có thể được hoàn thành trên đúng một trong ba máy tính.
Các thao tác cho phép, mỗi thao tác tốn đúng thời gian ghi kèm:
- Hoàn thành một phần bất kỳ trên máy đang đứng: giờ (chỉ được làm khi mọi phần mà nó phụ thuộc đã hoàn thành).
- Di chuyển : giờ. Di chuyển : giờ. Di chuyển : giờ.
- Di chuyển : giờ. Di chuyển : giờ. Di chuyển : giờ.
Ban đầu bạn được tự chọn đứng ở máy tính bất kỳ. Hãy tìm số giờ ít nhất để hoàn thành toàn bộ các phần của trò chơi.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số phần của trò chơi.
- Dòng thứ hai chứa số nguyên, số thứ là () là máy tính có thể hoàn thành phần .
- dòng tiếp theo mô tả các phần: dòng thứ bắt đầu bằng số nguyên (), sau đó là số nguyên phân biệt (; ) là các phần phải hoàn thành trước phần .
Đảm bảo không có phụ thuộc vòng giữa các phần.
Dữ liệu ra
Một số nguyên duy nhất: số giờ ít nhất cần thiết.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 1 0 |
1 | Chỉ có một phần trên máy , không phụ thuộc gì. Đứng ngay ở máy và hoàn thành nó: giờ. |
| 5 2 2 1 1 3 1 5 2 5 1 2 5 4 1 5 0 |
7 | Đứng ở máy , hoàn thành phần ( giờ). Sang máy ( giờ), hoàn thành phần và ( giờ). Sang máy ( giờ), hoàn thành phần và ( giờ). Tổng giờ. |
Bình luận