Rezultati

Up. imeNalogaJezikRezultatČas oddaje
zerodays-2018 Priprava naloge Python 3 100/100OK 19. apr '18 @ 18:45

Test Točke Porabljen spomin Porabljen čas Status
#1 11/11 21,035 MiB 0,996 s OK
#2 11/11 21,035 MiB 1,062 s OK
#3 11/11 20,883 MiB 0,986 s OK
#4 11/11 21,027 MiB 1,017 s OK
#5 11/11 20,789 MiB 1,023 s OK
#6 11/11 20,859 MiB 1,013 s OK
#7 11/11 8,660 MiB 0,000 s OK
#8 11/11 13,902 MiB 0,510 s OK
#9 12/12 8,512 MiB 0,000 s OK

Ocenjevani program (priprava_naloge2.py):
k, n = map(int, input().split())
t, c = [], []
starttimes = [] # na ntem mestu je start time ntega dogodka
skupnapomembnost = 0

for i in range(n):
    ti, ci = map(int, input().split())
    if i == 0:
        starttimes.append(0)
    else:
        starttimes.append(starttimes[-1] + t[-1])

    t.append(ti)
    c.append(ci)
    skupnapomembnost += ci


start, stop = 0, 1
p = c[0]
pomembnost = skupnapomembnost

if k > starttimes[-1] + t[-1]:
    print('Tekma bo polom')
    exit(0)

def dt(x, y):
    if y == n: 
        return starttimes[-1] + t[-1] - starttimes[x]
    return starttimes[y] - starttimes[x]

while stop < n:
    p += c[stop]
    stop += 1
    while stop < len(starttimes) and dt(start, stop) < k:
        p += c[stop]
        stop += 1

    pomembnost = min(pomembnost, p)        

    # print(start, stop)
    last = -1
    while start < stop and dt(start, stop) >= k:
        last = p
        p -= c[start]
        start += 1

    if last != -1:
        pomembnost = min(pomembnost, last)
    # print(start, stop, last)

     
print(skupnapomembnost - pomembnost)