eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

17 стульев

17 стульев

Остап Бендер снова пытается получить причитающиеся драгоценности, но на этот раз они были запреты в шкатулке для открытия которой необходимо иметь n ключей. По закономерной случайности каждый из ключей был спрятан в одном из n стульев, распроданных на недавнем аукционе. После аукциона эти стулья были развезены в n городов.

И вот теперь Остап решился на новую безумную идею: заехать в каждый из городов и, провернув в каждом из них аферу, выкрасть необходимые ключи. Чтобы избежать конфликтов с недоброжелателями Остап не хочет больше одного раза появляться в каком либо городе. Также у Остапа есть список цен за проезд между каждой парой городов. Изначально Остап находится в городе под номером 1 и после посещения всех городов может незаметно скрыться из этой страны.

Помогите Остапу найти порядок посещения городов при котором ему потребуется потратить как можно меньше средств на странствия и тогда, возможно, он поделится с Вами добытыми бриллиантами.

Входные данные

Первая строка содержит количество городов n. Следующие n строк содержат по n целых неотрицательных чисел. j-ое число в i-ой строке означает стоимость проезда из города i в город j. Если aij > 0, то проезд стоит aij рублей, иначе это означает, что из города i в j невозможно проехать напрямую.

Количество городов не превышает числа, упоминаемого в названии задачи, а стоимость проезда между двумя городами не превышает 100.

Выходные данные

В первой строке выведите минимальную сумму денег, необходимую для посещения всех городов Остапом. В следующей строке выведите n чисел - порядок посещения городов, при котором эта сумма достигается.

Если добыть все ключи Остапу не удасться с соблюдением указанных в условии задачи условий, то выведите единственное число -1.

Лимит времени 1 секунда
Лимит использования памяти 256 MiB
Входные данные #1
3
0 3 2
3 0 6
2 6 0
Выходные данные #1
8
1 3 2
Входные данные #2
5
0 6 4 0 0
6 0 7 0 7
4 7 0 0 0
0 0 0 0 2
0 7 0 2 0
Выходные данные #2
20
1 3 2 5 4