Ada n kotak, bernomor 1-n . Setiap kotak dikunci, sehingga hanya dapat dibuka oleh satu jenis kunci yang sesuai (juga bernomor 1-n ). Kunci-kunci ini tersebar secara acak di dalam kotak-kotak (satu kotak mungkin memiliki sejumlah kunci, satu kunci mungkin memiliki jumlah duplikat), dan kemudian semua kotak ditutup. Harta karun (bernomor 0 ) juga telah dikunci di banyak kotak.
Anda telah menyewa tukang kunci untuk mengambil semua harta karun itu. Dia menagih untuk setiap kotak yang dia buka. Tidak ada biaya untuk membuka kotak yang kuncinya sudah tersedia.
Input adalah isi dari setiap kotak. Anda dapat memutuskan format input.
Keluarkan biaya minimum yang diperlukan untuk mendapatkan harta.
Catatan
- Algoritme Anda mungkin memakan waktu lama, tetapi itu tidak relevan.
- Kode terpendek menang.
- Tidak perlu repot tentang input yang tidak valid.
Contoh data
Di sini baris saya mewakili kunci yang ada di kotak i .
Memasukkan
2 0
3
4 0
5 6 0
6
0
Keluaran
1
Memasukkan
2 0
3 0
4 0
6
5 0
Keluaran
3
Memasukkan
2 4 0
3 0
1 0
6
5 0
Keluaran
2
Memasukkan
1
3 4
2 6
5
Keluaran
0
[[1] [3 4] [] [] [2 6] [5]]atau mungkin {{1},{3,4},{},{},{2,6},{5}}. Dengan cara ini, sebagian besar bahasa dapat mengurangi pembacaan input menjadi sesuatu yang sepele i=eval(read())dan fokus pada bagian tantangan yang menyenangkan.