import java.util.Scanner;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int num = s.nextInt();
int zhilingnum = s.nextInt();
int[][] zhiling = new int[zhilingnum][2];
for(int i = 0;i<zhilingnum;i++) {
zhiling[i][0] = s.nextInt();
zhiling[i][1] = s.nextInt();
}
//创建一个vector,先把所有加进去 vec里表示的是每个学号对应的位置 不是人数
Vector vec = new Vector<Integer>();
for(int i=1;i<=num;i++) {
vec.addElement(i);
}
//开始根据指令移动
for(int i = 0;i<zhilingnum;i++) {
int xuehao = zhiling[i][0];
int weizhi = zhiling[i][1];
if(weizhi>0) { //说明往后移动
//记录一下原本的位置
int pre = (int)vec.elementAt(xuehao-1);
int temp = pre;
//从原本位置开始的weizhi个学号都要往前进一个 即-位置
for(int j=0;j<weizhi;j++,pre++) {
//这次要改变的学号的位置是pre+1
//这次要改变的学号是
xuehao = (int)vec.indexOf(pre+1);
vec.set(xuehao,pre);
}
//给自己赋值
vec.set(zhiling[i][0]-1, temp+zhiling[i][1]);
}else { //说明往前移动
//记录一下原本的位置
int pre = (int)vec.elementAt(xuehao-1);
int temp = pre;
weizhi = weizhi*-1;
//从原本位置开始的前weizhi个学号都要往后退一个 即+位置
for(int j=0;j<weizhi;j++,pre--) {
//这次要改变的学号的位置是pre-1
//这次要改变的学号是
xuehao = (int)vec.indexOf(pre-1);
vec.set(xuehao,pre);
}
//给自己赋值
vec.set(zhiling[i][0]-1, temp-(-1)*zhiling[i][1]);
}
}
//根据位置输出学号
for(int i=1;i<=num;i++) {
System.out.print(vec.indexOf(i)+1+" ");
}
}
}
CCF-CSP 201703-2学生排队
最新推荐文章于 2022-06-25 11:13:12 发布