리카와 장군들
시간 제한2초메모리 제한512 MB
- 난이도
아직 분류되지 않았습니다
- 정답자
- 아직 제출이 없습니다
문제
오늘 리카는 전략 게임을 하고 있다. 게임의 첫 단계는 이미 끝났고, 그녀는 자신의 나라를 세웠다.
리카의 나라에는 개의 도시가 있고, 이 도시들은 개의 양방향 도로로 연결되어 있다. 어떤 두 도시든 도로를 따라 서로 갈 수 있다. 리카는 이 도시들을 명의 충성스러운 장군에게 나누어 주기로 했다. 장군들은 공적이 작은 순서대로 1부터 까지 번호가 붙어 있다. 처음에 리카는 번째 도시를 번 장군에게 주기로 했다. 여기서 은 길이 의 순열이다.
리카는 장군들을 모두 소집해 이 초기 계획을 보여준다. 장군들은 다음 두 조건을 만족할 때에만 도시를 서로 맞바꿀 수 있다. 장군 가 도시 를, 장군 가 도시 를 갖고 있을 때, 아래 조건이 모두 성립하면 두 장군은 도시를 교환할 수 있다.
- 두 장군의 공적이 비슷하다. 즉 가 1이어야 한다.
- 두 도시의 위치가 가깝다. 즉 도시 와 도시 사이에 도로가 있어야 한다.
교환 과정에서 한 장군은 도시를 여러 번 바꿀 수 있고, 한 도시도 여러 장군 사이에서 옮겨 갈 수 있다.
예상대로 장군들 사이에 다툼이 벌어졌다. 도시의 소유권을 정하려면 오랜 시간이 걸릴 것 같다. 리카는 이 상황이 지루하다. 재미로, 가능한 분배 계획의 수를 세어 달라고 한다.
입력
첫 줄에 테스트 케이스의 개수 ()가 주어진다.
각 테스트 케이스의 첫 줄에는 도시의 개수 ()이 주어진다. 이어서 개의 줄에 정수 와 ()가 주어지며, 도시 와 도시 사이에 도로가 있음을 뜻한다.
마지막 줄에는 초기 분배 계획 ()가 개 주어진다. 입력은 이 길이 의 순열임을 보장한다. 모든 테스트 케이스의 의 합은 이하이다.
출력
각 테스트 케이스마다 가능한 분배 계획의 수를 한 줄에 출력한다. 답이 매우 클 수 있으므로 으로 나눈 나머지를 출력한다.
힌트
간단히 나타내기 위해 분배 계획을 으로 표기한다. 여기서 는 번 장군이 갖는 도시이다. 가능한 분배 계획은 모두 7가지이다.
- : 교환 없이 그대로인 경우.
- : 장군 사이에서 교환한 경우.
- : 장군 사이에서 교환한 경우.
- : 장군 , 그다음 순서로 교환한 경우.
- : 장군 , 그다음 순서로 교환한 경우.
- : 장군 , , 순서로 교환한 경우.
- : 장군 , , 순서로 교환한 경우.