트리
면접 대비시간 제한1초메모리 제한256 MB
무방향 그래프가 주어질 때 사이클이 없는 연결 성분의 개수를 세어 각 테스트 케이스마다 출력한다.
문제
그래프는 정점(vertex)과 간선(edge)으로 이루어진다. 두 정점 사이에 경로가 존재하면 그 두 정점은 서로 연결되어 있다고 한다. 연결 요소(connected component)는 그 안의 모든 정점이 서로 연결되어 있는 정점들의 부분집합이며, 하나의 그래프는 하나 이상의 연결 요소로 이루어진다.
트리(tree)는 사이클(cycle)이 없는 연결 요소이다. 트리는 여러 성질을 가진다. 예를 들어 정점이 개인 트리는 간선이 정확히 개이며, 임의의 두 정점 사이의 경로가 유일하다.
그래프가 주어졌을 때, 그 그래프에 들어 있는 트리의 개수를 세는 프로그램을 작성하시오. 정점 하나로만 이루어진 연결 요소도 간선이 개여서 사이클이 없으므로 트리로 센다.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫째 줄에는 정점의 개수 과 간선의 개수 이 주어지며, , 을 만족한다. 이어지는 개의 줄에는 각 간선을 나타내는 두 정수가 주어진다. 같은 간선이 두 번 이상 주어지는 경우는 없다. 정점은 번부터 번까지 번호가 매겨져 있다. 입력의 마지막 줄에는 이 두 개 주어진다.
출력
각 테스트 케이스마다 결과를 한 줄씩 출력한다. 그래프에 트리가 하나도 없으면 No trees., 정확히 한 개 있으면 There is one tree., 개()이면 A forest of T trees.(여기서 T는 트리의 개수)를 출력한다. 각 줄은 Case X: 로 시작하며, 는 부터 시작하는 테스트 케이스 번호이다.