主要思路: 创建学生结构体…
#include <iostream>
using namespace std;
//
const int N = 1000;
struct Node {
int index;
int pos;
} stu[N];
int main(int argc, char** argv) {
int n,m,p,q;
int temp1[N],temp2[N];
cin>>n;
int arr[n];
for(int i=1;i<=n;i++){
stu[i].index=i;
stu[i].pos=i;
}
cin>>m;
for(int i=0;i<m;i++){
cin>>p>>q;
if(q>0){
for(int i=stu[p].pos+1;i<=stu[p].pos+q;i++){
for(int j=1;j<=n;j++)
if(stu[j].pos==i) temp1[i]=j;
}
for(int i=stu[p].pos+1;i<=stu[p].pos+q;i++){
int k=temp1[i];
stu[k].pos--;
}
stu[p].pos += q;
}else{
for(int i=stu[p].pos+q;i<stu[p].pos;i++){
for(int j=1;j<=n;j++)
if(stu[j].pos==i) {
// stu[j].pos++;
temp1[i]=j;
// cout<<"stu["<<j<<"]:"<<stu[j].pos<<endl;
};
}
for(int i=stu[p].pos+q;i<stu[p].pos;i++){
int k=temp1[i];
stu[k].pos++;
}
stu[p].pos +=q;
}
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(stu[j].pos==i) cout<<j<<" ";
}
return 0;
}