Ограничения: время – 200ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Поссорившись, Траляля и Труляля решили поделить все деревья в лесу. Перед разделом леса они измерили
расстояние между каждой парой деревьев. При этом путь между этими деревьями проходил вдали от других деревьев.
Таким образом, может оказаться так, что "прямое" расстояние `D_{ij}` между деревьями `i` и `j` может оказаться
больше суммы путей `D_"ik"` и `D_"kj"`. Такой способ измерения расстояний был использован по следующей причине:
при охране своих деревьев может потребоваться быстро бежать от одного дерева к другому, а если на пути
окажется какое-то дерево, то можно удариться о него лбом.
Напишите программу, которая разделит деревья в лесу между Траляля и Труляля таким образом, чтобы
максимальное расстояние между своими деревьями у каждого было минимально. Максимальное расстояние между
деревьями Траляля должно быть больше или равно максимальному расстоянию между деревьями Труляля.
Первая строка ввода содержит одно целое число `N` (`3\ ≤\ N\ ≤\ 100`). Далее следует `(N-1)` строка, `i`-я cтрока ввода
содержит `(i-1)` целое число `D_{ij}` в диапазоне от 1 до `10^6` – расстояния от `i`-го до `j`-го, где `j` от 1 до `i-1`.
Вывести в первой строке одно целое число `K` (`K\ <\ N`) – количество деревьев у
Траляля в распределении, минимизирующих максимальное расстояние между своими деревьями,
во второй строке выведите `K` чисел – номера этих деревьев. Если существует несколько вариантов,
минимизирующих расстояние между деревьями Траляля, выведите из них вариант, минимизирующий расстояние
между деревьями Труляля.
Пример ввода
4
1
4 5
2 2 3