#include <stdio.h>
int main() {
int n, m; // n: 바구니 개수, m: 반복 횟수
int ball[100]; // ball[0] ~ ball[99] 사용
int s, e; // 시작, 끝 바구니 번호 (1-기반 입력)
int tmp;
scanf("%d %d", &n, &m);
// 1. 초기화: 인덱스 0부터 N-1까지 공 번호 1부터 N으로 초기화
for (int i = 0; i < n; i++) {
ball[i] = i + 1; // 1번 바구니(i=0)에 1번 공, N번 바구니(i=N-1)에 N번 공
}
// 2. 뒤집기 작업 (M번)
for (int i = 0; i < m; i++) {
scanf("%d %d", &s, &e);
// 1-기반 입력(s, e)을 0-기반 인덱스로 변환
int start_idx = s - 1;
int end_idx = e - 1;
// 두 포인터를 사용하여 교환 (일반적인 뒤집기 로직)
int left = start_idx;
int right = end_idx;
while (left < right) {
// Swap (교환)
tmp = ball[left];
ball[left] = ball[right];
ball[right] = tmp;
left++;
right--;
}
}
// 3. 결과 출력: 인덱스 0부터 N-1까지 출력
for (int i = 0; i < n; i++) {
printf("%d ", ball[i]);
}
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: