java火车票问题求解

问题遇到的现象和发生背景

能不能详细解释一下从temp开始以下的代码,我很菜,请解释的通俗易懂一点

问题相关代码,请勿粘贴截图

package R19;

import java.util.Scanner;

public class strain1 {
    static int time=0;//定义一个静态变量,用来记录每一排座位的个数的变化
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入购票指令的数量:");
        int piao=sc.nextInt();
        int[] arr=new int[piao];
        System.out.print("每个购票指令买几张:");
        for(int i=0;i<piao;i++) {
            arr[i]=sc.nextInt();
        }
        int seat[][]=new int[20][5];
        for(int i=0;i<20;i++) {
            for(int j=0;j<5;j++) {
                seat[i][j]=0;
            }
        }
        //座位分配算法
        int[] temp = new int[20];// 定义一个辅助数组,记录每排已购座位的个数
        //购票指令的数量决定最后输出的行数
        for(int i=0;i<piao;i++) {
            for(int j=0;j<20;j++) {
                if(arr[i]>5-temp[j]) {
                    continue;
                }
                else if(arr[i]<=5-temp[j]) {
                    int s=temp[j];
                    for(int m=temp[j];m<s+arr[i];m++) {
                        seat[j][m]=1;
                        System.out.print((5*j+m+1)+" ");
                        time++;
                        temp[j]=time;
                    }
                    System.out.println();
                    time=0;//将记录次数置0
                    break;
                }
            }
        }

    }
}


```###### 运行结果及报错内容 

###### 我的解答思路和尝试过的方法 

###### 我想要达到的结果

哪里不懂