순환 노선 세기
시간 제한2초메모리 제한256 MB
역이 최대 9개인 방향 그래프에서 출발점이 다른 같은 순환을 하나로 쳐서 단순 사이클 개수를 셉니다.
문제
루크는 여행지마다 그 도시의 대중교통을 타보는 것을 좋아한다. 그중에서도 한 역에서 출발해 다른 역을 적어도 하나 거친 뒤 출발한 역으로 돌아오는 순환 경로를 찾는 데 재미를 붙였다. 노선망마다 이런 순환 경로가 몇 개나 있는지 알고 싶어 한다.
루크가 세려는 것은 단순 순환이다. 단순 순환은 서로 다른 역의 나열 로서, 인 모든 에 대해 에서 로 바로 가는 연결이 있고, 에서 로 바로 가는 연결도 있는 것을 말한다. 순환은 그 안의 어느 역에서든 시작해 적을 수 있으므로, 한 나열을 순환하듯 밀어서 얻은 나열은 모두 같은 단순 순환으로 본다. 반면 같은 역 집합을 다른 순서로 도는 두 단순 순환은 서로 다른 것으로 센다.
노선망에 서로 다른 단순 순환이 몇 개 있는지 세는 프로그램을 작성하시오.
입력
첫째 줄에 노선망의 역 개수 이 주어진다 (). 역에는 부터 까지 번호가 붙어 있다.
둘째 줄에 연결의 개수 이 주어진다 (). 이어지는 개 줄에 연결이 한 줄에 하나씩 주어진다. 각 줄은 두 정수 와 로 이루어지며 (, , ), 역 에서 역 로 가는 일방통행 연결이 있다는 뜻이다.
출력
노선망에 있는 서로 다른 단순 순환의 개수를 출력한다.