#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;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: