Есть n ящиков, пронумерованных 1-н . Каждый ящик заблокирован, так что его можно открыть только одним ключом соответствующего типа (также пронумерованным 1-n ). Эти ключи случайным образом разбросаны по блокам (один ящик может иметь любое количество ключей, один ключ может иметь любое количество дубликатов), а затем все ящики закрываются. Сокровище (пронумерованное 0 ) также было заперто во многих коробках.
Вы наняли слесаря, чтобы забрать все сокровища. Он взимает плату за каждую открытую им коробку. За открытие ящика, для которого ключ уже доступен, плата не взимается.
Ввод - это содержимое каждого поля. Вы можете выбрать формат ввода.
Выведите минимальную стоимость, необходимую для получения сокровищ.
Примечания
- Ваш алгоритм может занять много времени, но это не имеет значения.
- Самый короткий код выигрывает.
- Не нужно беспокоиться о неверном вводе.
Образец данных
Здесь строка i представляет ключи, присутствующие в блоке i .
вход
2 0
3
4 0
5 6 0
6
0
Выход
1
вход
2 0
3 0
4 0
6
5 0
Выход
3
вход
2 4 0
3 0
1 0
6
5 0
Выход
2
вход
1
3 4
2 6
5
Выход
0
источник
[[1] [3 4] [] [] [2 6] [5]]
или, может быть{{1},{3,4},{},{},{2,6},{5}}
. Таким образом, большинство языков могут уменьшить чтение входных данных до чего-то тривиальногоi=eval(read())
и сосредоточиться на забавной части задачи.Ответы:
CJam,
59525049454342 байтаСпасибо @ MartinBüttner за то, что он сыграл в гольф 3 байта и проложил путь еще 4!
Попробуйте онлайн в интерпретаторе CJam .
Как это устроено
источник
array long &
работает, так что вы можете удалитьa
из0a&
. К сожалению, это делает его немного сложнее поймать вас.0a&
с0&
, я также должен заменить0+
с0aa+
, так как0 0&
это falsy.CJam (53 байта)
Это слишком медленно для онлайн-переводчика.
рассечение
источник
java.lang.OutOfMemoryError: Java heap space
с вашей программой.[ [4,0], [1,3,4], [0], [6,0], [3,0], [5]]
конечно, со стилем ввода, как показано в оригинальном посте.Haskell, 173 байта
l
это тот, кого вы хотите позвонить.Не уверен, стоит ли мне использовать псевдо-
Map
вместо ([(Int,[Int])]
вместо[[Int]]
).источник