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

К-реберний граф

К-реберний граф

Задано ациклічний орієнтовний граф з n вершинами та k ребрами. Знайти кількість ребер у його транзитивному замиканні.

Транзитивним замиканням графу G є граф G', який складається з множини вершин заданого графа G та множини ребер (u, v) таких, що існує шлях з вершини u у вершину v у графі G.

Кнут знає, як розв'язати цю задачу, а Ви?

Вхідні дані

У першому рядку два числа n і k (1n, k50000). Далі йдуть k рядків кожний з яких містить по два цілих числа ai та bi. Вони позначають наявність ребра, що веде з вершини ai у bi (1ai, bin). Граф не містить петель, циклів і кратних ребер.

Вихідні дані

Вивести кількість ребер у транзитивному замиканні.

Ліміт часу 2 секунди
Ліміт використання пам'яті 512 MiB
Вхідні дані #1
5 6
1 2
2 3
3 5
4 5
1 5
1 3
Вихідні дані #1
7
Автор А. Міланін
Джерело 2013 Зимова школа Харків, День 1, Задача K