DFT에 관한 또 하나의 문제
시간 제한5초메모리 제한512 MB
소수 p와 n이 p-1을 나누는 배열 a가 주어질 때, 최소 원시근 g로 정한 w를 이용한 DFT를 m번 적용한 결과를 출력합니다.
문제
는 소수이고, 는 정수 개로 이루어진 배열이다. 여기서 을 만족하는 양의 정수 가 있다. 모든 에 대해
이 성립하면 배열 를 의 이산 푸리에 변환이라 하고, 로 쓴다. 여기서 는 법 에서의 차 원시 단위근이다. 즉 이고, 인 모든 에 대해 이다.
는 여러 값이 가능하므로 DFT가 하나로 정해지지 않는다. 이 문제에서는 다음 방식으로 를 정한다. 를 법 의 생성원이라 하자. 즉 인 모든 에 대해 인 이 존재한다. 이런 중 가장 작은 양의 값을 고르고, 로 둔다.
\mathrm{DFT}^{(m)}(a) = \underbrace{\mathrm{DFT}(\mathrm{DFT}( \ldots \mathrm{DFT}(a) \ldots ))}_{\text{m번}}로 정의한다. 이 문제의 과제는 를 구하는 것이다.
입력
첫 줄에 공백으로 구분된 세 정수 (), (), ()이 주어진다. 는 소수이고, 은 을 나누어떨어뜨린다고 보장된다.
둘째 줄에는 공백으로 구분된 정수 개 ()이 주어진다.
출력
연산을 적용한 뒤의 배열 을 공백으로 구분하여 개 출력한다.
힌트
예시에서 의 가장 작은 생성원은 이다. 이므로, 법 61에서 6차 원시 단위근으로 을 고른다. 처음 몇 번의 반복 결과는 다음과 같다.