java.util.NoSuchElementException в java.util.Scanner

Я решаю проблемы в HackerEarth и не могу понять, почему моя программа правильно работает в моей командной строке и дает правильный результат, но при запуске в их редакторе кода она дает исключение java.util.NoSuchElementException.

Я искал, но не смог решить.

import java.util.Scanner;

public class TestClass {
    public static int[][] arr = null;
    public static int[][] dp = null;

    public static void main(String[] args) {
        int N, M, T;
        int min;
        int count = 0;
        Scanner scan = new Scanner(System.in);

        N = scan.nextInt();
        M = scan.nextInt();

        arr = new int[N][M];
        dp = new int[N + 1][M + 1];

        for (int i = 0; i < N; ++i) {
            for (int j = 0; j < M; ++j) {
                arr[i][j] = scan.nextInt();   //line 26
            }
        }

        for (int i = 0; i < M + 1; ++i)
            dp[0][i] = 0;

        for (int i = 0; i < N + 1; ++i)
            dp[i][0] = 0;

        for (int i = 1; i < N + 1; ++i) {
            for (int j = 1; j < M + 1; ++j) {
                if (arr[i - 1][j - 1] == 0) {
                    min = Math.min(dp[i - 1][j], Math.min(dp[i]
                        [j - 1], dp[i - 1][j - 1]));
                    dp[i][j] = min + 1;
                } else
                    dp[i][j] = 0;
            }
        }

        count = 0;
        for (int i = 1; i < N + 1; ++i) {
            for (int j = 1; j < M + 1; ++j) {
                if (dp[i][j] != 0)
                    count += dp[i][j];
            }
        }
        System.out.println("" + count);
    }//main
}//class

Исключение:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)
    at TestClass.main(editor_trsource_1429355115_85417.java:26)

person Cyclotron3x3    schedule 18.04.2015    source источник


Ответы (2)


Это означает, что у вас нет данных из стандартного ввода, и вы пытаетесь получить nextInt из того же. Вероятно, вам следует проверить, есть ли у вас данные для потребителя, используя hasNextInt например:

if (scanner.hasNextInt()) {
   //read nextInt();
}
person SMA    schedule 18.04.2015
comment
Спасибо. Проблема в том, что я ожидал 4 разных ввода как 0 1 0 0 с пробелом, разделяющим их, но они ожидают 4 разных ввода как 0100 без пробелов. Знаете ли вы, как мы можем прочитать это внутри массива как 4 разных входа? ? - person Cyclotron3x3; 18.04.2015
comment
вы можете прочитать как String, а затем использовать метод charAt для String, чтобы получить отдельные числа. - person SMA; 18.04.2015

Если вы отправляете решение на онлайн-компилятор для участия в соревновании по программированию, попробуйте обновить браузер.

person cammando    schedule 29.04.2017