카드

시간 제한1초메모리 제한16 MB

요약
소수로 정해지는 섞기 동작을 거쳐 두 번째 더미가 N부터 1까지 나오도록 첫 번째 더미의 초기 배열을 구한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 수학, 구현, 그리디
정답자
아직 제출이 없습니다

문제

루카스는 카드 게임을 좋아하며, 카드를 섞는 새로운 방법을 고안했다.

11번부터 NN번까지 번호가 매겨진 카드 NN장이 어떤 순서로 첫 번째 더미에 쌓여 있다. 두 번째 더미는 처음에 비어 있다. 정확히 NN번의 연산을 수행한다. pkp_k를 kk번째 소수라고 하자(p1=2p_1 = 2, p2=3p_2 = 3, p3=5p_3 = 5, …\dots). kk번째 연산에서는 다음을 한다.

  1. 첫 번째 더미의 맨 위 카드 pk−1p_k - 1장을 한 장씩 맨 아래로 옮긴다.
  2. 그런 다음 첫 번째 더미의 맨 위 카드를 두 번째 더미의 맨 위에 올려놓는다.

예를 들어 첫 번째 더미가 위에서 아래로 1,2,3,4,5,6,71, 2, 3, 4, 5, 6, 7일 때 p=5p = 5로 연산을 수행하면, 먼저 맨 위 44장을 아래로 옮겨 5,6,7,1,2,3,45, 6, 7, 1, 2, 3, 4가 되고, 이어서 맨 위 카드 55를 두 번째 더미에 올려 첫 번째 더미는 6,7,1,2,3,46, 7, 1, 2, 3, 4가 된다.

모든 NN번의 연산을 마쳤을 때 두 번째 더미가 위에서 아래로 N,N−1,…,2,1N, N-1, \dots, 2, 1이 되도록(즉 카드 11번이 두 번째 더미의 맨 아래에 오도록) 첫 번째 더미의 카드 순서를 정하라.

입력

정수 NN 하나가 주어진다(2≤N≤100 0002 \le N \le 100\,000). 첫 번째 더미에 있는 카드의 수이다.

출력

NN개의 줄을 출력한다. ii번째 줄에는 첫 번째 더미에서 위치 ii에 있는 카드의 번호 aia_i를 출력한다. 위치 11은 맨 위 카드, 위치 NN은 맨 아래 카드이다.

힌트

처음 네 소수는 2,3,5,72, 3, 5, 7이다. 첫 번째 더미가 위에서 아래로 2,1,3,42, 1, 3, 4로 놓여 있을 때, 네 번의 연산 동안 더미는 다음과 같이 변한다.

(2,1,3,4)→(3,4,2)→(3,4)→(4)→( )(2, 1, 3, 4) \to (3, 4, 2) \to (3, 4) \to (4) \to (\,)

연산 11(p1=2p_1 = 2): 카드 22를 맨 아래로 옮긴 뒤 카드 11을 꺼낸다. 연산 22(p2=3p_2 = 3): 두 번 옮기면 맨 위 카드가 22가 되어 이를 꺼낸다. 연산 33과 44에서는 각각 카드 33과 44를 꺼낸다. 두 번째 더미는 아래에서 위로 1,2,3,41, 2, 3, 4로 채워지며, 위에서부터 읽으면 4,3,2,14, 3, 2, 1이다.

예제1

  1. 예제 1

    입력
    4
    
    예상 출력
    2
    1
    3
    4