#include <iostream>
#include <algorithm>
using namespace std;
int arr[20];
int a, b, tmp;
int main(int argc, char** argv){
for(int i = 0; i < 20; i++){
arr[i] = i+1; // 초깃값 설정
}
for(int i = 0; i < 10; i++){
scanf("%d %d", &a, &b);
//뒤집는 작업
reverse(arr + a-1, arr + b); // 0부터 시작해서 -1 해줘야함.
}
for(int i = 0; i < 20; i++){
printf("%d ", arr[i]); // 출력
}
return 0;
}
STL 라이브러리인 reverse를 사용해서 간단하게 풀었다.
원래 실제 역순을 취하는 알고리즘을 짤까 하다가 배열 두 개를 선언하고 복사하여 이용하려고 했지만 굉장히 비효율적이라는 생각이 들어 STL 라이브러리로 대신하게 되었다.