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

Кибер-коммивояжер

Кибер-коммивояжер

В свете демографического взрыва населения Земли, строится ряд городов на Луне. Мы бы хотели чтобы Вы нам помогли в определении лучшей дорожной сети между этими городами. Учитывая высокие затраты, связанные со строительством дорог на Луне, все дороги образуют цикл, начиная от города, который появится на Луне первым, проходит через все другие города ровно один раз (но в любом произвольном порядке) и заканчивается в первом (Да, это видоизменённая задача бродячего торговца). Вы имеете информацию о расходах на строительство дороги между каждой парой городов. Дороги являются односторонними, но расходы на строительство дороги от города \textbf{i} до \textbf{j} такие же, как на строительство дороги от города \textbf{j} до \textbf{i}. Когда дороги пересекаются в месте, которое не является городом, необходимо учитывать затраты на строительство объездного моста. Строительство объездного моста определяется как стоимость системы \textbf{k·(k-1)·C/2}, где \textbf{k --} количество дорог, пересекающихся в этом месте, и \textbf{C} - заданная постоянная. Следует отметить, что города расположены так, что никакие три города не расположены на одной прямой. \InputFile Ваша программа будет опробована на одном или нескольких тестах. Каждый тест задается с помощью \textbf{2·N+1} строк. В первой строке каждого теста указывается два целых числа: (\textbf{2} < \textbf{N} < \textbf{9}) -- количество городов и (\textbf{0} < \textbf{C} ≤ \textbf{1000000}) - коэффициент, используемый при определении стоимости строительства мостов. После этого идут строки с декартовыми координатами городов, указанные по порядку. Каждый город задан в отдельной строке двумя целыми числами: \textbf{x_i} и \textbf{y_i} где (\textbf{-1000} ≤ \textbf{x_i}, \textbf{y_i} ≤ \textbf{1000}). Никакие два города не расположены на одном и том же (\textbf{x}, \textbf{y}) месте. Последние \textbf{N} строк теста задают матрицу \textbf{N}×\textbf{N}, представляющую стоимость строительства дороги между двумя городами. Матрица задается с помощью \textbf{N} строк, каждая из которых содержит \textbf{N} целых чисел. \textbf{j}--е значения в \textbf{i}--й строке, обозначается как \textbf{c_ij} и является стоимостью строительства дороги от города \textbf{i} в город \textbf{j}, причём (\textbf{0} < \textbf{c_ij} ≤ \textbf{10^6}) и (\textbf{c_ij} = \textbf{c_ji}) и (\textbf{c_ii} = \textbf{0}). Завершает тестовые данные строка с двумя нулями. \OutputFile Для каждого теста, вывести следующую строку: \textbf{k. M} где \textbf{k} -- номер теста (начиная с единицы), а \textbf{M} - минимальная стоимость создания дорожной сети. \includegraphics{https://static.e-olymp.com/content/19/1931f7ec74076cbd80441c6958d0d8b08bd90a59.jpg}
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
4 1
1 2
0 1
2 1
1 0
0 1 8 3
1 0 3 9
8 3 0 2
3 9 2 0
4 100
1 2
0 1
2 1
1 0
0 1 8 3
1 0 3 9
8 3 0 2
3 9 2 0
0 0
Выходные данные #1
1. 10
2. 20