Es gibt n Kästchen mit der Nummer 1-n . Jede Box ist gesperrt, sodass sie nur mit einem entsprechenden Schlüsseltyp (auch mit 1-n nummeriert ) geöffnet werden kann . Diese Schlüssel werden zufällig in den Feldern verteilt (ein Feld kann eine beliebige Anzahl von Schlüsseln enthalten, ein Schlüssel kann eine beliebige Anzahl von Duplikaten enthalten), und dann werden alle Felder geschlossen. Ein Schatz (mit der Nummer 0 ) wurde ebenfalls in vielen Kisten eingeschlossen.
Sie haben einen Schlosser engagiert, um den ganzen Schatz zu bergen. Er berechnet für jede Kiste, die er aufbricht. Das Öffnen einer Box, für die der Schlüssel bereits verfügbar ist, ist kostenlos.
Die Eingabe ist der Inhalt jeder Box. Sie können das Format der Eingabe festlegen.
Geben Sie die minimalen Kosten aus, die erforderlich sind, um die Schätze zu erhalten.
Anmerkungen
- Ihr Algorithmus kann lange dauern, aber das ist irrelevant.
- Kürzester Code gewinnt.
- Keine Notwendigkeit, sich um ungültige Eingaben zu kümmern.
Beispieldaten
Hier repräsentiert die Linie i die in Kasten i vorhandenen Schlüssel .
Eingang
2 0
3
4 0
5 6 0
6
0
Ausgabe
1
Eingang
2 0
3 0
4 0
6
5 0
Ausgabe
3
Eingang
2 4 0
3 0
1 0
6
5 0
Ausgabe
2
Eingang
1
3 4
2 6
5
Ausgabe
0
[[1] [3 4] [] [] [2 6] [5]]
oder vielleicht {{1},{3,4},{},{},{2,6},{5}}
. Auf diese Weise können die meisten Sprachen das Lesen der Eingabe auf etwas so Triviales reduzieren wie i=eval(read())
und sich auf den unterhaltsamen Teil der Herausforderung konzentrieren.