Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Cykliczne składowe
(cykliczne-skladowe)
Limit pamięci: 32 MB
Limit czasu: 1.00 s

Napisz program, który: wczyta graf nieskierowany, wyznaczy liczbę jego spójnych składowych, które są cyklami prostymi i wypisze wynik na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajdują się dwie liczby naturalne N oraz M, oddzielone pojedynczym odstępem i określające liczbę wierzchołków i krawędzi grafu. W kolejnych M wierszach znajduje się opis krawędzi grafu, po jednej w wierszu. Opis każdej krawędzi składa się z dwóch liczb naturalnych ui oraz vi oddzielonych pojedynczym odstępem. Są to numery wierzchołków połączonych dwukierunkową krawędzią.

Wierzchołki numerowane są kolejnymi liczbami naturalnymi od 1 do N włącznie.

Dla każdej krawędzi grafu gwarantowane jest, że ui ≠ vi. Każda nieuporządkowana para (ui,vi) może wystąpić na wejściu co najwyżej raz.

Wyjście

W pierwszym (jedynym) wierszu wyjścia należy wypisać jedną nieujemną liczbę całkowitą – liczbę spójnych składowych grafu, które są cyklami prostymi.

Ograniczenia

1 ≤ N ≤ 200 000, 1 ≤ M ≤ 500 000.

Przykład

Wejście Wyjście Wyjaśnienie
11 11
1 2
2 3
3 4
1 4
5 6
6 7
7 8
8 5
6 8
9 10
10 11
1

Graf z wejścia ma trzy spójne składowe, lecz tylko jedna z nich jest cyklem prostym.