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
sumber
[[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 sepelei=eval(read())
dan fokus pada bagian tantangan yang menyenangkan.Jawaban:
CJam,
59525049454342 byteTerima kasih kepada @ MartinBüttner untuk bermain golf 3 byte dan membuka jalan untuk 4 lainnya!
Cobalah online di penerjemah CJam .
Bagaimana itu bekerja
sumber
array long &
berfungsi, sehingga Anda dapat menghapusa
dari0a&
. Sayangnya ini membuat sedikit lebih sulit untuk menangkapmu.0a&
dengan0&
, saya juga harus mengganti0+
dengan0aa+
, karena0 0&
itu palsu.CJam (53 byte)
Ini agak lambat untuk penerjemah online.
Pembedahan
sumber
java.lang.OutOfMemoryError: Java heap space
dengan program Anda.[ [4,0], [1,3,4], [0], [6,0], [3,0], [5]]
tentu saja dengan gaya input seperti yang ditunjukkan pada posting asli.Haskell, 173 byte
l
adalah orang yang ingin Anda panggil.Tidak yakin apakah saya seharusnya tidak menggunakan pseudo-
Map
sebagai gantinya ([(Int,[Int])]
bukan[[Int]]
).sumber