[Beginner Free Contest 35] DUNGEON
Xem dạng PDFHãng game KFCTuba đang phát triển một tựa game mới. Để thử nghiệm các tính năng cũng như sửa lỗi trước khi đưa các dòng lệnh vào game, nhóm đã phát hành một phiên bản thử nghiệm nhỏ của trò chơi.
Trong bản thử nghiệm nhỏ của game, người chơi phải giải được hết các mật mã trong dungeon. Do chỉ là bản thử nghiệm nên dungeon chỉ có ~n~ căn phòng được đặt nối tiếp nhau. Căn phòng thứ ~i~ chỉ có một con đường một chiều nối đến phòng thứ ~i + 1~ ~(1 \le i \le n - 1)~.
Căn phòng thứ ~i~ có một câu đố và một danh sách gồm ~k_i~ căn phòng ~a_{i,1}, a_{i,2}, \ldots, a_{i,k_i}~. Để giải được câu đố trong phòng thứ ~i~, trước đó người chơi phải giải được các câu đố của các phòng trong danh sách nói trên.
Nếu đến được phòng cuối (phòng thứ ~n~) mà các mật mã đã được giải hết, trò chơi sẽ kết thúc. Nếu không, người chơi sẽ bị đưa về lại phòng ~1~ và tiếp tục đi qua dungeon. Các căn phòng đã được giải mã trước khi quay về vẫn được lưu lại để người chơi có thể tiếp tục giải mã các căn phòng khác.
Bạn vừa tải xong trò chơi và muốn biết rằng mình sẽ chơi nhanh nhất trong bao lâu, bằng cách đếm số lần ít nhất mà bạn đi qua dungeon (đi từ phòng ~1~ đến phòng ~n~ được xem là ~1~ lần đi qua dungeon), hoặc cho biết rằng trò chơi không thể được hoàn thành.
Dữ liệu
Dòng đầu tiên gồm một số nguyên ~n~ ~(1 \le n \le 10^5)~ là số căn phòng.
Dòng thứ ~i + 1~ ~(1 \le i \le n)~ bắt đầu bởi số nguyên ~k_i~ ~(0 \le k_i \le n - 1)~ là số căn phòng trong danh sách ở căn phòng thứ ~i~. Sau đó là dãy ~k_i~ các số nguyên ~a_{i,1}, a_{i,2}, \ldots, a_{i,k_i}~ ~(1 \le a_{i,j} \le n)~. Các căn phòng trong danh sách là khác nhau và khác ~i~.
Kết quả
Nếu có thể hoàn thành trò chơi, in ra một số nguyên duy nhất là số lần đi qua dungeon ít nhất. Nếu không thể, in ra ~-1~.
Ví dụ
Sample Input 1
4
1 2
0
2 1 4
1 2
Sample Output 1
2
Sample Input 2
5
1 5
1 1
1 2
1 3
1 4
Sample Output 2
-1
Sample Input 3
5
0
0
2 1 2
1 2
2 2 1
Sample Output 3
1
Giải thích
Trong ví dụ ~1~, người chơi sẽ giải mã ở phòng ~2~ và ~4~ trong lượt đi đầu tiên, và giải mã phòng ~1~ và ~3~ trong lượt đi thứ hai.
Trong ví dụ ~3~, các căn phòng đều chỉ cần giải mã các phòng trước đó, nên ta có thể hoàn thành trong lượt đi đầu tiên.
Bình luận