10804

#include <stdio.h>

int main(void){
    // 1~20까지 배열 초기화
    int arr[21] ={0};
    for(int i = 1; i <= 20; i++){
        arr[i] = i;
    }

    // 카드 역배치
    for(int j = 0; j < 10; j++){
        // 구간 입력
        int a,b;
        scanf("%d %d",&a, &b);

        // 만약 b-a가 짝수면 1
        int is_even = 0;
        if((b-a)%2 == 0){is_even = 1;}

        // 반복할 길이 구하기 
        int len = (b-a)/2+1; 

        // 구간에서 각 카드배치들을 swap해주기
        for(int k = 0; k < len; k++){
            int swap_index = len*2-(k+1) - is_even;
            int tmp = arr[a+k];
            arr[a+k] = arr[a + swap_index];
            arr[a + swap_index] = tmp;
        }
    }

    // 출력
    for(int i = 1; i <= 20; i++){
        printf("%d ",arr[i]);
    }
    return 0;
}

 

+ Recent posts