백준 10811 c++

magicdrill·2024년 3월 26일

백준 문제풀이

목록 보기
211/673

백준 10811 c++

#include <iostream>
using namespace std;

int main(void)
{
	int* arr = nullptr;
	int N, M;
	int s, t;
	int i, j;
	int temp;

	cin >> N >> M;
	if ((N >= 1 && N <= 100) && (M >= 1 && M <= 100))
	{
		;
	}
	else
	{
		return 0;
	}

	arr = new int[N];
	for (s = 0; s < N; s++)
	{
		arr[s] = s + 1;
	}

	for (s = 0; s < M; s++)
	{
		cin >> i >> j;
		if ((i >= 1 && i <= j) && (j >= 1 && j <= N))
		{
			i = i - 1;
			j = j - 1;
			for (t = 0; t < j - i - ((j - i)/2); t++)
			{
				temp = arr[i + t];
				arr[i + t] = arr[j - t];
				arr[j - t] = temp;
			}
			/*
			for (t = i; t < i + (j - i)/2 + 1; t++)
			{
				temp = arr[t];
				arr[t] = arr[j + i - t];
				arr[j + i - t] = temp;
			}
			*/
		}
		else
		{
			s--;
		}
	}

	for (s = 0; s < N; s++)
	{
		cout << arr[s] << " ";
	}
	cout << endl;

	delete[] arr;

	return 0;
}

0개의 댓글