포럼
문제 USACO0569

회전과 이동

설명

*참고: 이 문제의 시간 제한은 기본의 2배인 4초이다.*

봄의 시작을 기념하기 위해, 농부 존의 \(N\)마리 소들(\(1 \leq N \leq 2 \cdot 10^5\))은 원을 이루어 서서 예측 가능한 방식으로 자리를 바꾸는 흥미로운 새 춤을 고안했다.

구체적으로, 원 둘레에 \(N\)개의 위치가 있으며, \(0\)부터 \(N-1\)까지 차례대로 번호가 매겨져 있고, 위치 \(N-1\) 다음에 위치 \(0\)이 온다. 각 위치에는 소 한 마리가 있다. 소들에게도 \(0\)부터 \(N-1\)까지 차례대로 번호가 매겨져 있다. 처음에 소 \(i\)는 위치 \(i\)에서 시작한다. "활성" 위치 \(K\)개의 집합 \(0=A_1이 주어지며, 이 위치에 있는 소들이 다음에 이동한다 (\(1 \leq K \leq N\)).

춤의 매 분마다 두 가지 일이 일어난다. 먼저, 활성 위치에 있는 소들이 회전한다: 위치 \(A_1\)의 소가 위치 \(A_2\)로, 위치 \(A_2\)의 소가 위치 \(A_3\)로 이동하며, 이런 식으로 위치 \(A_K\)의 소가 위치 \(A_1\)로 이동한다. 이 \(K\)번의 이동은 모두 동시에 일어나므로, 회전이 끝난 후에도 모든 활성 위치에는 정확히 한 마리의 소가 있다. 다음으로, 활성 위치 자체가 이동한다: \(A_1\)\(A_1+1\)이 되고, \(A_2\)\(A_2+1\)이 되는 식이다 (어떤 활성 위치에 대해 \(A_i = N-1\)이면, \(A_i\)\(0\)으로 되돌아간다).

춤을 \(T\)분 춘 후의 소들의 순서를 계산하라 (\(1\le T\le 10^9\)).

출제자: Claire Zhang

제약

배점

  • 입력 2-7: \(N \leq 1000, T \leq 10000\)
  • 입력 8-13: 추가 제약 조건이 없다.

출제자: Claire Zhang

입력 형식

첫째 줄에 세 정수 \(N\), \(K\), \(T\)가 주어진다.

둘째 줄에 초기 활성 위치 집합을 나타내는 \(K\)개의 정수 \(A_1,A_2, \ldots A_K\)가 주어진다. \(A_1 = 0\)이고 증가하는 순서로 주어짐을 기억하라.

출력 형식

\(T\)분 후의 소들의 순서를 위치 \(0\)의 소부터 시작하여 공백으로 구분해 출력한다.

예제 1
입력
5 3 4
0 2 3
출력
1 2 3 4 0
설명

For the example above, here are the cow orders and \(A\) for the first four
timesteps:

Initial, T = 0: order = [0 1 2 3 4], A = [0 2 3]
T = 1: order = [3 1 0 2 4]
T = 1: A = [1 3 4]
T = 2: order = [3 4 0 1 2]
T = 2: A = [2 4 0]
T = 3: order = [2 4 3 1 0]
T = 3: A = [3 0 1]
T = 4: order = [1 2 3 4 0]
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2022-2023 > US Open > Bronze

태그

평가 및 의견

Rotate and Shift

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Rotate and Shift

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8