CCF 201703-2 学生排队实现 java实现(100 分代码)
一 问题描述:
这是问题描述;
要求的输入格式以及输出格式;
二 解题思路:
1、要明确排队的方式,是通过学生编号排队,不是学生所在位置。
2、加入移动次数大于二,第二次是在第一次排队的基础上排队。
三 代码实现:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int m=scanner.nextInt();
ArrayList<Student> student=new ArrayList<Student>();
ArrayList<Integer> s=new ArrayList<Integer>();
for(int i=0;i<n;i++) {
s.add(i+1);
}
for(int i=0;i<m;i++) {
Student stu=new Student(scanner.nextInt(), scanner.nextInt());
student.add(stu);
}
for (int i = 0; i < student.size(); i++) {
int t = s.indexOf(student.get(i).num);//找到要移动的学生
s.remove(t);
s.add(t + student.get(i).direction, student.get(i).num);//插入学生
}
for (int r : s) {
System.out.print(r + " ");
}
}
}
class Student{
public int num;//要学生序号
public int direction;//要移动的位置
public Student(int num, int direction) {
super();
this.num = num;
this.direction = direction;
}
}
第一次发博,还望各位大佬指出不足之处。希望和大家多多学习!