Задачи
К-реберный граф
К-реберный граф
Дан ациклический ориентированный граф из n вершин и k рёбер. Найти количество рёбер в его транзитивном замыкании.
Транзитивное замыкание графа G - граф G', состоящий из множества вершин исходного графа G и множества ребер (u, v) таких, что существует путь из вершины u в вершину v в графе G.
Кнут знает, как решать эту задачу. А Вы?
Входные данные
В первой строке два числа n и k (1 ≤ n, k ≤ 50000). В каждой из следующих k строк находится по два целых числа ai
и bi
, означающих наличие ребра, ведущего из вершины ai
в bi
(1 ≤ ai
, bi
≤ n). Граф не содержит петель, циклов и кратных рёбер.
Входные данные
Вывести количество рёбер в транзитивном замыкании.
Входные данные #1
5 6 1 2 2 3 3 5 4 5 1 5 1 3
Выходные данные #1
7