Почему выдает NoSuchElementException и как это решить?

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        int sum = 0, n1, n2;
        int[] a1;
        int[] a2;
        Scanner sc = new Scanner(System.in);
        n1 =sc.nextInt();
        a1 = new int[n1];
        for(int i = 0; i<n1; i++){
            a1[i] = sc.nextInt();
        }
        n2 = sc.nextInt();
        a2 = new int[n2];
        for(int i = 0; i<n2; i++){
            a2[i] = sc.nextInt();
        }
        for(int i = 0; i<a1.length; i++){
            for(int j = 0; j<a2.length; j++){
                sum+= (i - j)*Math.abs(a1[i] - a2[j]);
            }
        }
        System.out.println(sum);
    }
}

Ошибка:

Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    at java.base/java.util.Scanner.next(Scanner.java:1594)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
    at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
    at Main.main(Main.java:10)

Ответы (1 шт):

Автор решения: SmellyNS

На paiza.io потоковый ввод указывается сразу, заранее, а не делает запрос к пользователю при каждом считывании.

Вам необходимо указать все входные данные заранее в поле Input, тогда ваша программа будет работать.

И не забудьте в конце программы добавить sc.close(), чтобы процесс не кушал память. Правило хорошего тона.

Надеюсь, что ваша проблема была именно в этом (ваша программа читала пустой ввод)

→ Ссылка