메뚜기
시간 제한15초메모리 제한512 MB
원 위 m개의 점에서 각 메뚜기의 새 위치는 다음 메뚜기 위치의 두 배에서 자기 위치를 뺀 값을 m으로 나눈 나머지입니다. 이 이동을 t번 반복한 뒤 모든 메뚜기의 위치를 구합니다.
문제
원 위에 개의 점이 표시되어 있다. 점들은 원 위에 나타나는 순서대로 부터 까지 번호가 붙어 있으며, 원을 같은 길이의 호로 나눈다. 일부 점에는 메뚜기가 있고, 같은 점에 메뚜기가 여러 마리 있을 수도 있다. 메뚜기에는 부터 까지 번호가 붙어 있다.
메뚜기들은 매초 다음 규칙에 따라 새 위치로 뛴다. 어떤 초의 시작에 메뚜기 이 각각 점 에 있고, 를 원의 중심이라 하자. 그 초가 끝나면 메뚜기들은 위치에 있다. 에 대해 는 점 를 직선 에 대해 대칭이동한 점이다. 은 점 을 직선 에 대해 대칭이동한 점이다. 메뚜기의 번호가 원 위의 순서와 일치하지는 않을 수 있으며, 춤추는 동안 번호는 바뀌지 않는다.
곧 집에 가야 하지만 그 이후에 무슨 일이 일어날지 알고 싶다. 메뚜기의 초기 배치가 주어졌을 때, 초 후의 위치를 구하라.
입력
첫 줄에 테스트 케이스의 개수 ()가 주어진다. 이어서 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 세 정수 , , (, , )가 주어진다. 각각 메뚜기의 수, 호의 수, 초의 수이다. 둘째 줄에는 메뚜기의 초기 위치를 나타내는 정수 개가 주어진다. 각 위치는 이상 이하의 정수이다. 모든 테스트 케이스의 메뚜기 수를 합하면 200000을 넘지 않는다.
출력
각 테스트 케이스마다 초 후 메뚜기들의 위치를 공백으로 구분하여 출력한다.