Rezultati

Up. imeNalogaJezikRezultatČas oddaje
JayZCrew Jungle Speed Python 3 100/100OK 11. maj '17 @ 18:32

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 8,613 MiB 0,000 s OK
#2 9/9 8,613 MiB 0,000 s OK
#3 9/9 8,637 MiB 0,000 s OK
#4 9/9 8,613 MiB 0,000 s OK
#5 9/9 8,609 MiB 0,000 s OK
#6 9/9 8,590 MiB 0,000 s OK
#7 9/9 8,613 MiB 0,000 s OK
#8 9/9 8,609 MiB 0,000 s OK
#9 9/9 8,617 MiB 0,000 s OK
#10 9/9 8,629 MiB 0,000 s OK
#11 10/10 8,598 MiB 0,000 s OK

Ocenjevani program (junglespeed.py):
N = int(input())
M = input().strip().split(' ')
M = list(map(int, M))

IGRALCI_KARTE = [[] for _ in range(N)]
SPREDAJ_KARTE = [[] for _ in range(N)]
for i in range(len(M)):
    IGRALCI_KARTE[i%N].append(M[i])

i = 0 #NA POTEZI

obrnjene_karte = [None]*N

#for k in range(N):
#    print(k, IGRALCI_KARTE[k], SPREDAJ_KARTE[k])
#print('---------------')

korakov = 0

def FUN(karte, prep, P):
    for j in range(len(karte)):
        if j != prep and karte[j] == P:
            return True, j
    return False, 0

while True:
    if len(IGRALCI_KARTE[i]) == 0:
        IGRALCI_KARTE[i] = SPREDAJ_KARTE[i][::-1]
        SPREDAJ_KARTE[i] = []
        obrnjene_karte[i] = None
    nova = IGRALCI_KARTE[i].pop(-1)
    SPREDAJ_KARTE[i].append(nova)
    obrnjene_karte[i] = nova
    Boolean, indeks = FUN(obrnjene_karte, i, nova)
    if Boolean:
        nove_karte = SPREDAJ_KARTE[indeks][:] + SPREDAJ_KARTE[i][:]
        IGRALCI_KARTE[i] = list(reversed(nove_karte)) + IGRALCI_KARTE[i][:]
        SPREDAJ_KARTE[i] = []
        SPREDAJ_KARTE[indeks] = []
        obrnjene_karte[indeks] = None
        obrnjene_karte[i] = None
        #print('#####', nova, indeks, SPREDAJ_KARTE[indeks], Boolean)
        if len(IGRALCI_KARTE[indeks]) + len(SPREDAJ_KARTE[indeks]) == 0:
            print(indeks + 1)
            break
    else:
        i = (i + 1) % N
    #for k in range(N):
    #    print(k,IGRALCI_KARTE[k], SPREDAJ_KARTE[k])
    #print(i, korakov, '---------------')