Время

14:24:18
24 May 2012
Версия для печати

Склейка

Дан ориентированный граф, вершины в котором занумерованы числами от 1 до N. В нем разрешается выполнять операцию склейки двух вершин, которая заключается в том, что из графа удаляются две вершины и добавляется одна новая вершина, в которую идут дуги из тех вершин, из которых были дуги хотя бы в одну из удаленных вершин, и из которой идут дуги во все вершины, куда шли дуги хотя бы из одной из удаленных вершин. Новая вершина получает в качестве своего номера минимальный из номеров склеиваемых вершин.
Требуется за наименьшее число операций склейки добиться того, чтобы в графе из любой вершины можно было попасть в любую другую.


Технические условия

Входные данные
Первая строка входного файла содержит целые числа N и M — количество вершин и дуг в исходном графе (1N200). Следующие M строк содержат описания дуг, каждая из которых задается номером начальной и конечной вершины. Граф не содержит петель и кратных ребер.
Выходные данные
В выходной файл выведите K — число операций склейки.


Информация о задаче

Лимит времени: 3 секунды
Лимит памяти: 64 MB
Баллы за пройденный тест: 0.5556
Сложность: 50% 3/6

Пример

Пример входных данных

4 4
1 2
4 3
1 3
4 2

Пример выходных данных

2


← Цветные волшебники Список задач Дороги в королевстве →