Задача · версия 1

Максимальный взвешенный разрез

Смотреть рейтинг →

Максимальный взвешенный разрез

Дан неориентированный взвешенный граф.

Необходимо разделить его вершины на две группы так, чтобы суммарный вес рёбер, соединяющих разные группы, был как можно больше.

Формат входных данных

В первой строке записаны два целых числа:

N M

Далее следуют M строк. Каждая строка содержит:

u v w

где u и v — номера вершин, а w — положительный вес ребра.

Вершины нумеруются от 1 до N.

Формат выходных данных

Выведите N чисел, каждое из которых равно 0 или 1.

Число на позиции i задаёт группу вершины i.

Числа можно выводить через пробел или перевод строки.

Целевая функция

Пусть W — сумма весов всех рёбер, а C — вес полученного разреза.

Checker вычисляет:

objective = W - C

Чем меньше objective, тем лучше решение.

Любое разбиение всех вершин на две группы является корректным.

%

Как начисляются баллы

Для каждого теста: q = clamp((B − S) / (B − R), 0, 1). Здесь B — базовый результат, S — результат решения, R — лучший ориентир. Во время соревнования рейтинг предварительный.