Dust_Settled @ 2023-10-12 00:40:02
#include<bits/stdc++.h>
using namespace std;
int n,k,z[100005];
int main (){
cin>>n>>k;
for(int i=1;i<=n;i++) z[i]=i;
for(int i=1;i<=k;i++){
int a,b,c;cin>>a>>b>>c;
int tmp[b-a+2],t=0;
for(int j=a;j<=b;j++) tmp[++t]=z[j];
if(c<a-1){
for(int j=c+1;j<=a-1;j++) z[j+t]=z[j];
for(int i=c+1,j=1;j<=t;i++,j++) z[i]=tmp[j];
}
else
if(c>a-1){
for(int j=b+1;j<=c;j++) z[j-t]=z[j];
for(int i=c+1-t,j=1;j<=t;i++,j++) z[i]=tmp[j];
}
}
for(int i=1;i<=10;i++){
cout<<z[i]<<'\n';
}
return 0;
}
by 123huchenghao @ 2024-06-28 17:06:59
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=100010;
int n,k,cnt;
int doc[N],tmp[N];
int main () {
for(int i=1; i<=N; i++)
doc[i]=i;
scanf("%d%d",&n,&k);
for(int j=0; j<k; j++) {
int s,t,p1,p2,ins,len;
scanf("%d%d%d",&s,&t,&ins);
len=t-s+1;
p1=ins+1;
p2=p1+len-1;
cnt=0;
for(int i=s; i<=t; i++)
tmp[++cnt]=doc[i];
if(ins<s)
for(int i=s-1; i>=p1; i--)
doc[i+len]=doc[i];
else
for (int i=t+1; i<=p2; i++)
doc[i-len]=doc[i];
for(int i=p2; i>=p1; i--)
doc[i]=tmp[cnt--];
}
for(int i=1; i<=10; i++)
printf("%d\n",doc[i]);
return 0;
}