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

Малые циклы

Малые циклы

Прочитав предлагаемые на соревнования задачи, зебра Гиппо обратила внимание на то, что в максимальном тесте к одной из задач в графе слишком мало рёбер. Тест представляет собой неориентированный граф \textbf{G}, обладающий следующими свойствами: \begin{itemize} \item \textbf{G} - простой граф, то есть он не содержит петель и кратных рёбер. \item \textbf{G} является связным. \item \textbf{G} не содержит простых циклов длиной \textbf{4} или более. Последовательность \textbf{k} различных вершин \textbf{v_1}, ..., \textbf{v_\{k \}}называется простым циклом длины \textbf{k}, если для каждого \textbf{i} вершины \textbf{v_i} и \textbf{v_\{i+1\}} соединены ребром и, кроме того, \textbf{v_1} и \textbf{v_k} также соединены ребром. \end{itemize} Зебра Гиппо хочет добавить к этому графу дополнительные рёбра так, чтобы вышеупомянутые свойства по-прежнему сохранялись. Какое количество дополнительных рёбер ей удастся добавить? \InputFile Первая строка входного файла содержит два целых числа \textbf{V} (\textbf{1} ≤ \textbf{V} ≤ \textbf{10^5}) и \textbf{E} (\textbf{0} ≤ \textbf{E} ≤ \textbf{10^5}), разделённые пробелом. Здесь \textbf{V} - количество вершин графа \textbf{G}, а \textbf{E} - количество рёбер графа \textbf{G}. Последующие \textbf{E} строк задают рёбра графа. \textbf{i}-я из этих строк содержит два целых числа \textbf{a_i} и \textbf{b_i} (\textbf{1} ≤ \textbf{a_i} < \textbf{b_i} ≤ \textbf{V}), разделённые пробелом - номера вершин, которые соединяет \textbf{i}-е ребро. Вершины пронумерованы от \textbf{1} до \textbf{V}. Гарантируется, что \textbf{G} обладает описанными в условии задачи свойствами. \OutputFile Выведите наибольшее количество рёбер, которые зебра Гиппо может добавить к графу \textbf{G} с сохранением вышеперечисленных свойств.
Лимит времени 2 секунды
Лимит использования памяти 512 MiB
Входные данные #1
7 6
1 2
1 3
1 4
1 5
1 6
1 7
Выходные данные #1
3
Источник Yandex.Algorithm, Online Round 2, July 18, 2013