본문으로 이동
코드패스 by Devin.KR

문제 4476 · 바이트 IV

반납대의 자리 교환

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

도서관의 반납대에는 책을 한 권씩 놓을 수 있는 자리가 N개 있다. 자리는 왼쪽부터 1번부터 N번까지 번호가 붙어 있다. 오늘 반납된 책에도 서로 다른 관리 번호가 붙어 있으며, 관리 번호는 1부터 N까지의 정수를 하나씩 사용한다. 처음에는 i번 자리에 관리 번호가 i인 책이 놓여 있다. 담당자는 반납된 책을 점검하면서 두 자리의 책을 맞바꾸는 작업을 한다. 작업 기록 한 줄에는 두 자리 번호 x와 y가 적혀 있다. 이 기록을 처리할 때는 현재 x번 자리에 놓인 책과 현재 y번 자리에 놓인 책을 서로 바꾼다. 두 번호는 책의 관리 번호가 아니라 반납대의 자리 번호를 뜻한다. 작업 기록은 작성된 순서대로 처리한다. 앞선 작업으로 책의 위치가 달라졌다면, 다음 작업은 달라진 상태를 기준으로 수행한다. 예를 들어 어떤 작업에서 1번 자리와 4번 자리의 책을 바꾼 뒤 다시 같은 두 자리를 바꾸면, 두 자리의 책은 첫 작업 전 위치로 돌아온다. 두 자리 번호가 같을 수도 있으며, 이 경우에는 어떤 책의 위치도 바뀌지 않는다. 모든 작업은 두 자리에 이미 놓여 있는 책만 맞바꾼다. 작업 도중 책을 추가하거나 없애지 않으며, 책이 없는 자리도 생기지 않는다. 따라서 어떤 시점에도 각 자리에는 정확히 한 권의 책이 있고, 각 관리 번호도 반납대 전체에 정확히 한 번 등장한다. 점검이 끝난 뒤 담당자는 왼쪽부터 책의 관리 번호를 읽어 최종 배치표를 작성하려 한다. 주어진 작업 기록 Q개를 모두 처리한 뒤, 1번 자리부터 N번 자리까지 놓인 책의 관리 번호를 순서대로 구한다. 작업 기록이 하나도 없다면 처음 배치를 그대로 사용한다.

입력

첫째 줄에 정수 N과 Q가 공백으로 주어진다. 다음 Q개 줄에는 각 작업의 자리 번호를 나타내는 정수 x와 y가 공백으로 주어진다. 작업은 입력된 순서대로 수행한다.
1 ≤ N ≤ 20,000
0 ≤ Q ≤ 20,000
1 ≤ x, y ≤ N

출력

모든 작업을 처리한 뒤 각 자리에 놓인 책의 관리 번호 N개를 1번 자리부터 순서대로 공백으로 구분하여 한 줄에 출력한다.

예제 입력 1

5 3
1 4
2 4
3 3

예제 출력 1

4 1 3 2 5

예제 입력 2

4 0

예제 출력 2

1 2 3 4

예제 입력 3

3 2
1 3
1 3

예제 출력 3

1 2 3
힌트 펼치기
  • 배열의 인덱스는 자리 번호를, 저장된 값은 책의 관리 번호를 나타내도록 한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류구현배열

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)