Исключение NoSuchElement при реализации класса сканера

Главное иметь в виду, что сложность времени и пространства должна быть минимальной. Таким образом, чтобы достичь этого, я объединил два цикла for в один, а затем ошибку java.util.NoSuchElementException произошло.

Ошибка в следующей строке: a = in.nextInt();

import java.io.*;
import java.util.*;

public class Solution {

public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    int N = in.nextInt();
    int M = in.nextInt();

    long m[] = new long[N];
    long big=0; 

    int a = in.nextInt();
    int b = in.nextInt();
    int k = in.nextInt();

    int i;
    int j;
    for( i=0,j=a-1 ; i<M && j<=N  ; j++)
    {
            m[j] = m[j] + k;
            big = Math.max(big, m[j]);

        if(j==b-1)
        {
            a = in.nextInt();
            b = in.nextInt();
            k = in.nextInt();
            j = a-1;
            i=i+1;
        }
    }
    System.out.print(big);
}
}

Средний код, который работал до этого, был следующим:

for(int i=0;i<M;i++)
    {
        int a = in.nextInt();
        int b = in.nextInt();
        int k = in.nextInt();

        for(int j=a-1;j<=b-1;j++)
        {
            m[j] = m[j] + k;
            if(m[j]>big)
            {
                big = m[j];    
            }
        }
    }

2 ответа

Мне кажется, что основная причина в тесте цикла:

for( i=0,j=a-1 ; i<M && j<=N  ; j++)

Действительно, массив объявлен как:

long m[] = new long[N];

поэтому тест должен быть:

 for( i=0,j=a-1 ; i<M && j<N  ; j++)

Какова гарантия того, что m[a-1] существует, a является динамическим вводом, и вы не проверяете, является ли он>=0, и

Другие вопросы по тегам