여행
시간 제한1초메모리 제한128 MB
꼭짓점이 20개 이하인 그래프에서 처음 k개(7개 이하) 도시를 모두 한 번 이상 지나는 길이 d인 보행의 수를 세어 10^9+9로 나눈 나머지를 구한다.
문제
바이트랜드에는 번부터 번까지 번호가 매겨진 개의 도시가 있습니다. 이 도시들은 개의 양방향 도로로 연결되어 있으며, 서로 다른 두 도시를 직접 잇는 도로는 최대 한 개뿐입니다.
바이트맨은 번호가 번부터 번까지인 도시들을 특별히 좋아해서, 여행을 할 때마다 이 개의 도시를 각각 최소 한 번씩 방문합니다.
여행이란 연속한 두 도시가 항상 도로로 직접 연결되어 있는, 개의 도시로 이루어진 수열입니다. 여행은 어느 도시에서 시작해서 어느 도시에서 끝나도 됩니다. 바이트맨이 할 수 있는 서로 다른 여행의 수를 구하세요. 두 여행은 도시의 수열이 다르면 서로 다른 것으로 봅니다. 이 값이 매우 클 수 있으므로, 로 나눈 나머지를 출력합니다.
입력
첫 번째 줄에 네 정수 , , , 가 공백으로 구분되어 주어집니다 (, , ). 이어지는 개의 줄에는 각 도로의 정보가 주어지며, 각 줄에는 그 도로가 잇는 두 도시의 번호 , 가 공백으로 구분되어 주어집니다 (, ).
출력
서로 다른 여행의 수를 로 나눈 나머지 하나를 출력합니다.
힌트

첫 번째 예제에서는 도로가 1-2, 2-3, 3-1, 2-4이고, 바이트맨은 번과 번 도시를 반드시 방문해야 합니다. 길이가 인 유효한 여행은 다음 가지입니다.
- 1 → 2 → 1
- 1 → 2 → 3
- 1 → 2 → 4
- 1 → 3 → 2
- 2 → 1 → 2
- 2 → 1 → 3
- 2 → 3 → 1
- 3 → 1 → 2
- 3 → 2 → 1
- 4 → 2 → 1