刚开始看题目然后分析以为是用两个队列然后互相导入,写了代码以后发现各种问题解决起来很麻烦,换了一种思路 。
#include<iostream>
using namespace std;
int s[1005];
int main()
{
int n;
int k;
cin>>n>>k;
for(int i=0;i<n;i++){
s[i] = i+1;
}
for(int i=0;i<k;i++){
int a,b;
cin>>a>>b;
int m = 0;
for(int j=0;j<n;j++){
if(s[j] == a)
m = j;
}
if(b > 0){
for(int p=0;p<b;p++){
s[m] = s[m+1];
s[m+1] = a;
m = m+1;
}
}
if(b < 0){
for(int p=0;p<-b;p++){
s[m] = s[m-1];
s[m-1] = a;
m = m-1;
}
}
}
for(int i=0;i<n;i++){
cout<<s[i]<<" ";
}
cout<<endl;
return 0;
}