고속도로 레이싱 트랙
시간 제한1초메모리 제한128 MB
단순 그래프에서 다섯 개의 서로 다른 정점을 지나는 네 개의 변 경로(5-정점 체인)가 몇 개인지 센다.
문제
거울 나라 정부가 대규모 고속도로망을 건설하겠다고 발표했다. 계획에 따르면 모든 도로는 양방향이며, 각 도로에는 서로 다른 고유 번호가 붙는다. 각 도로는 서로 다른 두 로터리를 연결하고, 임의의 두 로터리 사이에는 최대 한 개의 도로만 놓인다. 도로끼리는 서로 교차하지 않는다(필요한 곳에는 터널과 다리를 놓는다).
한 불법 레이싱 클럽이 이 발표를 반겼다. 경주를 열려면 정확히 네 개의 이어진 도로가 필요하며, 이 도로들이 하나의 레이싱 트랙을 이룬다. 레이싱 트랙은 정확히 다섯 개의 서로 다른 로터리를 지나야 한다(특히 출발 로터리와 도착 로터리는 서로 달라야 한다). 즉, 트랙은 로터리의 사슬 로, 다섯 로터리가 모두 서로 다르고 이웃한 두 로터리는 도로로 연결되어 있다.
두 경주는 레이싱 트랙이 다르면 서로 다른 경주로 본다. 두 트랙은 정확히 같은 네 개의 도로로 이루어져 있으면 같은 트랙이고, 도로가 적어도 하나 다르면 다른 트랙이다(따라서 같은 트랙을 반대 방향으로 달리는 것은 같은 트랙이다).
주어진 도로망에 대해, 클럽이 열 수 있는 서로 다른 레이싱 트랙이 몇 개인지 세는 프로그램을 작성하라.
입력
첫 줄에 테스트 케이스의 개수 ()가 주어진다.
각 테스트 케이스의 첫 줄에는 두 정수 과 (; )이 주어지며, 은 로터리의 수, 은 도로의 수이다. 이어지는 개의 줄에는 각각 두 정수 , ()가 주어지고, 이는 로터리 와 로터리 가 도로로 연결되어 있음을 뜻한다.
출력
각 테스트 케이스마다, 주어진 도로망에서 만들 수 있는 서로 다른 레이싱 트랙의 개수를 한 줄에 하나씩 출력한다.