ccf csp 学生排队
借助list移动
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class 学生排队 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); List<Stu> sList = new ArrayList<>(); for (int i = 1; i < n+1; i++) { sList.add(new Stu(i)); } //开始 while(k-- >0) { int p = sc.nextInt(); int step = sc.nextInt(); int cur = 0; int newP = 0; Stu stu = null; //获取p学生的当前位置cur for (int i = 0; i < sList.size(); i++) { stu = sList.get(i); if(stu.id == p) { cur = i; sList.remove(i); break; } } //计算新的位置 p+step newP = cur + step; //插入新的位置 sList.add(newP, stu); } //打印结果 for (int i = 0; i < sList.size(); i++) { System.out.print(sList.get(i).id + " "); } } } class Stu{ int id; public Stu(int id) { this.id = id; } }