蓝桥杯提交测验时段错误

提交测验时段错误

这是题目

img

题目给出的是300*300的纯数字文本,每一行有一个换行符,但是没输入进去
在idea上编写程序正常运行,但是在蓝桥杯官网提交测验时发生段错误,不知道问题在哪,有无老哥解答一下。

 Scanner sc = new Scanner(System.in);
        int count = 0;
        char[][] ch = new char[300][300];
        for (int i = 0; i < ch.length; i++) {
                ch[i] = sc.next().toCharArray();
        }
        sc.close();

        //从左至右找2020
        for (int i = 0; i < ch.length; i++) {
            for (int j = 0; j < ch[i].length; j++) {
                StringBuilder sb = new StringBuilder();
                if(j+3 < ch[i].length){
                    sb.append(ch[i][j]);
                    sb.append(ch[i][j+1]);
                    sb.append(ch[i][j+2]);
                    sb.append(ch[i][j+3]);

                    if(sb.toString().equals("2020"))
                        count++;
                }
            }
        }



        //从上至下找2020
        for (int i = 0; i < ch.length; i++) {
            for (int j = 0; j < ch[i].length; j++) {
                StringBuilder sb = new StringBuilder();
                if(i+3 < ch.length){
                    sb.append(ch[i][j]);
                    sb.append(ch[i+1][j]);
                    sb.append(ch[i+2][j]);
                    sb.append(ch[i+3][j]);

                    if(sb.toString().equals("2020"))
                        count++;
                }
            }
        }

        //右下斜线找2020
        for (int i = 0; i < ch.length; i++) {
            for (int j = 0; j < ch[i].length; j++) {
                StringBuilder sb = new StringBuilder();
                if(i+3 < ch.length && j+3 < ch[i].length){
                    sb.append(ch[i][j]);
                    sb.append(ch[i+1][j+1]);
                    sb.append(ch[i+2][j+2]);
                    sb.append(ch[i+3][j+3]);

                    if(sb.toString().equals("2020"))
                        count++;
                }
            }
        }

        System.out.println(count); //16520