안녕하세요. 오늘은 바구니의 순서를 바꿀 거예요.
https://www.acmicpc.net/problem/10812
새로운 배열 brr을 만들어서 연산을 합시다.
brr[i]=arr[식] 꼴로 하면 많이 힘들어지므로 brr[식]=arr[i]라고 둡시다.
그러면 i가 속한 범위에 따라서 나뉘어 지는데 자세한건 코드로 보시면 됩니다. (ㅎㅎ;; ㅈㅅ.. ㅋㅋ!!)
#include <iostream>
using namespace std;
int arr[101] = { 0 }, N;
void change(int s, int e, int mid)
{
int brr[101] = { 0 };
for (int i = 1; i <= N; i++)
{
if (i < s || e < i) brr[i] = arr[i];
else
{
if (i < mid) brr[i + e - mid + 1] = arr[i];
else brr[i - mid + s] = arr[i];
}
}
for (int i = 1; i <= N; i++)
arr[i] = brr[i];
}
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int M, i, a, b, c;
cin >> N >> M;
for (i = 1; i <= N; i++) arr[i] = i;
for (i = 0; i < M; i++)
{
cin >> a >> b >> c;
change(a, b, c);
}
for (i = 1; i <= N; i++) cout << arr[i] << ' ';
}
감사합니다.