CCF20170302——学生排队
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a[1001];
cin>>n;
int num=1;
for(int i=1;i<=n;i++)
{
a[i]=num;
num++;
}
int m;//调整的次数
cin>>m;
int p,q,temp,flag;
for(int j=0;j<m;j++)
{
cin>>p>>q;
if(p==a[p])
{
flag=p;
}
else
{
for(int i=1;i<=n;i++)
{
if(a[i]==p)//如果已经发生调换,p不是下表了(无序了),需要重新找到下标
{
flag=i;
break;
}
}
}
if(q>0)
{
temp=p;
for(int i=flag;i<flag+q;i++)
a[i]=a[i+1];//前移
a[flag+q]=temp;
}else if(q<0)
{
temp=p;
for(int i=flag;i>q+flag;i--)
a[i]=a[i-1];//后移
a[flag+q]=p;
}
}
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}