시간 제한
메모리 제한
시간 제한
2초
메모리 제한
128 MB
방향 그래프가 주어진다. 이 그래프를 강한 연결 요소들로 나누는 프로그램을 작성하시오.
방향 그래프에서 강한 연결 요소란, 그 안에 포함된 서로 다른 임의의 두 정점 u, v에 대해 u에서 v로 가는 경로와 v에서 u로 가는 경로가 모두 존재하는 정점들의 최대 집합을 말한다.
정점 하나만으로도 강한 연결 요소가 될 수 있으며, 이때 그 정점에서 자기 자신으로 가는 간선이 없어도 된다.
첫째 줄에 두 정수 V(1 <= V <= 10,000)와 E(1 <= E <= 100,000)가 주어진다. 이는 그래프가 V개의 정점과 E개의 간선으로 이루어져 있다는 뜻이다.
다음 E개의 줄에는 간선을 나타내는 두 정수 A, B가 주어진다. 이는 정점 A에서 정점 B로 향하는 방향 간선이 있다는 의미이다.
정점 번호는 1부터 V까지이다.
첫째 줄에 강한 연결 요소의 개수 K를 출력한다.
다음 K개의 줄에는 각 강한 연결 요소에 속한 정점 번호를 오름차순으로 출력하고, 줄의 끝을 나타내기 위해 마지막에 -1을 출력한다.
여러 강한 연결 요소는 각 요소에 속한 가장 작은 정점 번호가 작은 순서대로 출력한다.