Задача: C2 (2023). Разбиение на команды
Тренер Игорь очень любит готовить школьников к командным олимпиадам по программированию.
Всего к нему в кружок ходит N
(N делится на 3) школьников, и, так как Игорь уже довольно опытный тренер, то для каждой пары школьников a
и b
он знает коэффициент сыгранности Ca,b
этих двух школьников. По его наблюдениям, если в одной команде находятся ученики под номерами a
, b
, c
, успех их команды можно будет выразить как Ca,b
· Cb,c
· Ca,c
. Игорю будет приятно, если как можно больше школьников успешно выступят на предстоящей Межгалактической Командной Олимпиаде Школьников по Программированию (МКОШП), и он хочет максимизировать суммарный успех составленных команд.
Иными словами, Игорь хочет максимизировать сумму Cai,bi
· Cbi,ci
· Cai,ci
по всем i
от 1
до N/3
, где ai
, bi
, ci
номера учеников в i
-той команде. Каждый ученик должен быть распределен в какую-либо команду и только в одну.
Его кружок очень популярен, и он не справляется с тем, чтобы оптимально решить эту задачу, так помогите же ему!
В первой строке вводится количество учеников N
(1 ≤ N
≤ 675, N
делится на 3).
В последующих N
строках вводятся по N
чисел: в j
-ом столбце i
-ой строки находится коэффициент сыгранности учеников под номерами i
и j
.
Выведите оптимальное разбиение на команды в виде N/3
строк, в каждой из которых находится по 3 целых числа номера учеников в этой команде. Ученики нумеруются с единицы.
Оценкой за решение одного набора входных данных будет величина 10·(partsolution/jury_solution)3
, где jury_solution
это лучшее решение среди всех участников и решения жюри, а part_solution
решение участника.
В этой задаче t = 7
. Оценка за этот тест: 70 баллов.
Примеры
№ |
Входные данные |
Выходные данные |
1 |
1
6
0 1 1 1 1 2
1 0 3 1 1 1
1 3 0 1 1 1
1 1 1 0 1 1
1 1 1 1 0 1
2 1 1 1 1 0
|
1 6 4
2 3 5
|
Ваш ответ: