Rezultati

Up. imeNalogaJezikRezultatČas oddaje
lml-2018 Priprava naloge Java 0/100Napaka med izvajanjem / ob izhodu (RTE) 19. apr '18 @ 18:50

Test Točke Porabljen spomin Porabljen čas Status
#1 0/11 39,508 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#2 0/11 44,824 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#3 0/11 42,992 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#4 0/11 41,664 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#5 0/11 44,438 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#6 0/11 42,266 MiB 0,000 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Naloge.main(Naloge.java:11)
#7 11/11 36,824 MiB 0,000 s OK
#8 0/11 95,117 MiB 1,416 s Program je končal z neničelno kodo
Stderr:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 96720
	at Naloge.main(Naloge.java:19)
#9 12/12 34,164 MiB 0,000 s OK

Ocenjevani program (Naloge.java):
import java.util.*;

public class Naloge
{
    public static void main(String[]args)
    {
        Scanner skan = new Scanner(System.in);
        int k = skan.nextInt();
        int n = skan.nextInt();
        int[] time = new int[n + 1];
        int[] value = new int[k];
        int j = 0;
        int result = 0;
        boolean set = false;

        for(int i = 0; i < n; i++)
        {
            time[i + 1] = time[i] + skan.nextInt();
            value[i] = skan.nextInt();

            if(k < time[i + 1] && !set)
            {
                j = i;
                set = true;
            }
            else if(k == time[i + 1])
            {
                j = i;
                set = true;
            }
            else if(k < time[i + 1])
            {
                result += value[i];
            }
        }

        if(k > time[n])
        {
            System.out.println("Tekma bo polom");
            return;
        }

        int clock = 0;
        int i = 0;

        while(clock + k < time[n])
        {
            if(Math.abs(time[i + 1] - clock) < Math.abs(time[j + 1] - clock - k))
            {
                if(clock + k == time[j])
                {
                    result -= value[j];
                }

                result += value[i];
                clock += Math.abs(time[i + 1] - clock);
                i++;
            } 
            else if(Math.abs(time[i + 1] - clock) > Math.abs(time[j + 1] - clock - k)) 
            {
                clock += Math.abs(time[j + 1] - clock - k);
                j++;
            }
            else
            {
                result += value[i];
                clock += Math.abs(time[i + 1] - clock);
                i++;
                j++; 
            }
        } 

        System.out.println(result);
    }
}