201703-2 学生排队

#include <iostream>
#include <cmath>
using namespace std;
const int N=1010;
int a[N];
int main(){
	int n,m,number,move;
	cin>>n;
	cin>>m;
	for(int i=1;i<=n;i++){
		a[i]=i;
	}
	int flag;
	while(m){
		cin>>number>>move;
		for(int i=1;i<=n;i++){
			if(a[i]==number){
				flag=i;
			}
		}
		if(move>0&&move<=n-flag){
			int temp=a[flag];
			for(int i=flag;i<flag+move;i++){
				a[i]=a[i+1];
			}
			a[flag+move]=temp;
		}
		if(move<0&&move<flag){
			move=abs(move);
			int temp=a[flag];
			for(int i=flag;i>flag-move;i--){
				a[i]=a[i-1];
			}
			a[flag-move]=temp;
		}
		m--;
	}
	for(int i=1;i<=n;i++){
		if(i <n)
		cout<<a[i]<<" ";
		else cout<<a[i];
	}
	return 0;
}

注意:学号与数组号不一致,需要重新定义一个量进行存储;

猜你喜欢

转载自blog.csdn.net/qq_42261362/article/details/83386073
今日推荐