만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

메뚜기

시간 제한15초메모리 제한512 MB

요약
원 위 m개의 점에서 각 메뚜기의 새 위치는 다음 메뚜기 위치의 두 배에서 자기 위치를 뺀 값을 m으로 나눈 나머지입니다. 이 이동을 t번 반복한 뒤 모든 메뚜기의 위치를 구합니다.
난이도

어려움10점 중 8점

유형
행렬, 수학, 정수론
정답자
아직 제출이 없습니다

문제

원 위에 mm개의 점이 표시되어 있다. 점들은 원 위에 나타나는 순서대로 11부터 mm까지 번호가 붙어 있으며, 원을 같은 길이의 호로 나눈다. 일부 점에는 메뚜기가 있고, 같은 점에 메뚜기가 여러 마리 있을 수도 있다. 메뚜기에는 11부터 nn까지 번호가 붙어 있다.

메뚜기들은 매초 다음 규칙에 따라 새 위치로 뛴다. 어떤 초의 시작에 메뚜기 1,2,…,n1, 2, \ldots, n이 각각 점 A1,A2,…,AnA_1, A_2, \ldots, A_n에 있고, OO를 원의 중심이라 하자. 그 초가 끝나면 메뚜기들은 B1,B2,…,BnB_1, B_2, \ldots, B_n 위치에 있다. k=1,2,…,n−1k = 1, 2, \ldots, n-1에 대해 BkB_k는 점 AkA_k를 직선 OAk+1OA_{k+1}에 대해 대칭이동한 점이다. BnB_n은 점 AnA_n을 직선 OA1OA_1에 대해 대칭이동한 점이다. 메뚜기의 번호가 원 위의 순서와 일치하지는 않을 수 있으며, 춤추는 동안 번호는 바뀌지 않는다.

곧 집에 가야 하지만 그 이후에 무슨 일이 일어날지 알고 싶다. 메뚜기의 초기 배치가 주어졌을 때, tt초 후의 위치를 구하라.

입력

첫 줄에 테스트 케이스의 개수 zz (1≤z≤1091 \le z \le 10^9)가 주어진다. 이어서 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 세 정수 nn, mm, tt (1≤n≤1000001 \le n \le 100000, 3≤m≤1003 \le m \le 100, 1≤t≤1091 \le t \le 10^9)가 주어진다. 각각 메뚜기의 수, 호의 수, 초의 수이다. 둘째 줄에는 메뚜기의 초기 위치를 나타내는 정수 nn개가 주어진다. 각 위치는 11 이상 mm 이하의 정수이다. 모든 테스트 케이스의 메뚜기 수를 합하면 200000을 넘지 않는다.

출력

각 테스트 케이스마다 tt초 후 메뚜기들의 위치를 공백으로 구분하여 출력한다.

예제1

  1. 예제 1

    입력
    2
    3 5 1
    1 1 2
    3 5 4
    1 1 2
    
    예상 출력
    1 3 5
    5 4 5