나눗셈의 춤
시간 제한2초메모리 제한512 MB
N명의 남녀가 두 원에서 K번 회전하며 춤을 출 때, 모든 커플의 나이 합 나머지가 M으로 같아지는 방법의 수를 10^9+7로 나눈 나머지로 구합니다.
문제
Nlogônia 나라 사람들은 나눗셈의 신을 기리기 위해 특별한 춤을 춘다. 춤은 명의 남자와 명의 여자가 두 개의 원에 서서 추며, 남자는 안쪽 원, 여자는 바깥쪽 원에 선다. 처음에 각 여자는 남자 한 명과 마주 본다.
춤은 번의 동작으로 이루어지며, 남자부터 시작해 남자와 여자가 번갈아 움직인다. 번째 동작에서는 한 원의 사람들이 시계 방향으로 칸 회전하고, 다른 원의 사람들은 제자리에 있는다. 그러면 각 사람은 칸 떨어진 사람과 새 파트너가 된다. 동작은 다음 두 조건을 모두 만족할 때 유효하다. 동작을 시작할 때와 끝낼 때 각 사람의 파트너가 달라야 하고, 서로 마주 보는 두 사람의 쌍이 서로 다른 두 시점에 나타나면 안 된다.
춤은 반드시 커플의 나이 합을 신성한 수 으로 나눈 나머지가 모두 같은 상태로 끝나야 한다. 즉 어떤 커플의 나이 합을 으로 나눈 나머지가 이면, 춤이 끝났을 때 모든 커플의 나이 합을 으로 나눈 나머지도 이어야 한다.
, , 와 모든 춤꾼의 나이가 주어졌을 때, 춤을 출 수 있는 방법의 수를 구하라. 나이는 초 단위로 측정되므로 값이 매우 클 수 있다.
입력
첫째 줄에 세 정수 (), (), ()가 주어진다. 각각 한 원에 서는 사람 수, 신성한 수, 동작의 수이다.
둘째 줄에는 여자들의 나이 ()가 공백으로 구분되어 주어진다. 셋째 줄에는 남자들의 나이 가 주어진다. 처음에 번째 남자는 번째 여자와 나란히 서 있다. 각 배열의 첫 번째 원소는 마지막 원소의 오른쪽에 이어져 있다고 본다.
출력
서로 다른 춤의 수를 로 나눈 나머지를 정수 하나로 출력한다.