Задачі
К-реберний граф
К-реберний граф
Задано ациклічний орієнтовний граф з 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