문제로 이동
10813호:랠리
도현은 총 N개의 바구니를 가지고 있고, 각 바구니는 1부터 N까지 번호가 매겨져 있습니다.
각 바구니에는 1개의 공이 들어 있으며 첫 번째 공에는 바구니에 적힌 번호와 같은 번호가 있습니다.
www.acmicpc.net
설명
스왑 기능을 통해 쉽게 구현할 수 있었습니다!
배열은 0부터 시작하고 바스켓은 1부터 시작합니다.
다른 어레이를 만든 후 어레이 1에서 값을 할당하는 방법을 선택했습니다!
암호
#include <iostream>
using namespace std;
int main()
{
cin.tie(NULL);
ios::sync_with_stdio(false);
int M, N;
cin >> M >> N;
int *arr = new int(M + 1); // 동적 할당
for (int i = 1; i <= M; i++) // 배열에 모든 값 입력
{
arr(i) = i;
}
for (int i = 0; i < N; i++)
{
int ii, jj;
cin >> ii >> jj;
swap(arr(ii), arr(jj)); // arr(ii)와 arr(jj)의 값을 서로 바꿈
}
for (int i = 1; i <= M; i++) // 배열 출력
{
cout << arr(i) << " ";
}
cout << "\n";
delete arr; // 동적 할당 해제
return 0;
}