백준 - 10812 바구니 순서 바꾸기(배열, 구현, rotate)

Kiwoong Park·2023년 5월 15일
0
#include <iostream>
using namespace std;

int main(){
    int N,M,i,j,k,t,e;
    cin >> N >> M;
    int arr[N+1], arr2[N+1];
    for(i=0;i<N+1;i++) arr[i]=i;
    while(M--){
        cin >> i >> j >> k;
        // i ~ k ~ j를 -> k ~ j ~ i ~ j-1 까지로 섞기
        e = i+j-k;

        for(t=0;t<N+1;t++) arr2[t]=arr[t];
        
        for(t=i;t<=j;t++){
            if (t<=e) arr[t]=arr2[k++];
            else arr[t]=arr2[i++];
        }
    }
    for(t=1;t<N+1;t++) cout << arr[t] << ' ';
    
}


#include <bits/stdc++.h>
using namespace std;

int main(){
	int n,m,i,j,k; scanf("%d%d",&n,&m);
	int num[1002]={};
	for(int a=1; a<=n; a++) num[a] = a;
	
	for(int a=0; a<m; a++){
		scanf("%d%d%d",&i,&j,&k);
		rotate(num+i,num+k,num+j+1);
	}
	
	for(int a=1; a<=n; a++) printf("%d ",num[a]);
}
profile
You matter, never give up

0개의 댓글