这是一开始用ArrayList写的
package _Practice;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Scanner;
public class P1076 {
static class room{
private int isStairs,number;
public room(int S,int n) {
this.isStairs = S;
this.number = n;
}
public int getisStairs() {
return isStairs;
}
public int getnumber() {
return number;
}
}
public static int Caculation(ArrayList<ArrayList<room>> building,int floors,int rooms,int start) {
int count = 0;
int nowRoom = start;
for(int i = 0; i < floors ; i++) {
int stairCount = 0;
int allStairs = 0;
for(int j = 0 ; j < rooms;j++) {
allStairs+=building.get(i).get(j).getisStairs();
}
int aimNumber = building.get(i).get(nowRoom).getnumber()%allStairs;
if(aimNumber==0)
aimNumber=allStairs;
count+=building.get(i).get(nowRoom).getnumber();
while (true) {
stairCount+=building.get(i).get(nowRoom).getisStairs();
if(aimNumber==stairCount) {
break;
}
if(nowRoom ==(rooms-1)) {
nowRoom = -1;
}
nowRoom++;
}
}
return count%20123;
}
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int M = scan.nextInt();
ArrayList<ArrayList<room>> building = new ArrayList<>();
ArrayList<room> oneFloor = new ArrayList<>();
ArrayList<room> temparyOneFloor = new ArrayList<>();
for(int j = 0 ; j < N; j++) {
for(int i = 0 ; i < M ; i++) {
int isStairs = scan.nextInt();
int number = scan.nextInt();
room aNewRoom = new room(isStairs,number);
temparyOneFloor.add(aNewRoom);
}
oneFloor=(ArrayList<room>) temparyOneFloor.clone();
building.add(oneFloor);
temparyOneFloor.clear();
}
int start = scan.nextInt();
System.out.println(Caculation(building,N,M,start));
}
}