Rezultati

Up. imeNalogaJezikRezultatČas oddaje
delta-2017 Jungle Speed Python 3 0/100Prekoračen čas (TLE) 11. maj '17 @ 19:45

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 8,602 MiB 0,000 s OK
#2 0/9 8,410 MiB 3,283 s Prekoračen čas
#3 0/9 8,621 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​3
<<<EOF>>>
Pravilen izhod:
​2
<<<EOF>>>
#4 0/9 8,605 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​3
<<<EOF>>>
Pravilen izhod:
​4
<<<EOF>>>
#5 9/9 8,625 MiB 0,000 s OK
#6 0/9 8,477 MiB 3,314 s Prekoračen čas
#7 0/9 8,480 MiB 3,304 s Prekoračen čas
#8 0/9 8,465 MiB 3,299 s Prekoračen čas
#9 0/9 8,617 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​2
<<<EOF>>>
Pravilen izhod:
​5
<<<EOF>>>
#10 0/9 8,605 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​8
<<<EOF>>>
Pravilen izhod:
​3
<<<EOF>>>
#11 10/10 8,617 MiB 0,000 s OK

Ocenjevani program (junglespeed.py):
n = int(input())
m = input().split(" ")

s = {}

for i in range(len(m)):
    if i%n not in s:
        s[i%n]=m[i]
    else:
        s[i%n]=s[i%n] + m[i]

miza = {}

for i in range(n):
    miza[i]=""

def primerjaj(nov):
    for i in range(n):
        if i != nov and len(miza[i])>0:
            if miza[i][-1]==miza[nov][-1]:
                return i
    return -1

def zamenjaj(igr1, igr2):
    a = list(miza[igr1] + miza[igr2])
    a.reverse()
    s[igr1] = "".join(a) + s[igr1]
    miza[igr2] = ""
    miza[igr1] = ""

def kupcek(x):
    if s[x]=="":
        a = list(miza[x])
        a.reverse()
        s[x]="".join(a)
        miza[x]=""

def preveri():
    for i in range(n):
        if miza[i]=="" and s[i]=="":
            return i+1
    return -10

#print(s, miza)
poteza = 0
while True:
    poteza = poteza%n
    kupcek(poteza)
    miza[poteza]+=s[poteza][-1]
    s[poteza]=s[poteza][:-1]
    igr = primerjaj(poteza)
    if igr > -1:
        zamenjaj(poteza, igr)
        poteza -= 1
        a = preveri()
        if a > -5:
            print(a)
            break
    poteza += 1