Rezultati

Up. imeNalogaJezikRezultatČas oddaje
programatorji-2017 Jungle Speed Python 100/100OK 11. maj '17 @ 18:14

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 6,375 MiB 0,000 s OK
#2 9/9 6,375 MiB 0,000 s OK
#3 9/9 6,375 MiB 0,000 s OK
#4 9/9 6,406 MiB 0,000 s OK
#5 9/9 6,406 MiB 0,000 s OK
#6 9/9 6,410 MiB 0,000 s OK
#7 9/9 6,410 MiB 0,000 s OK
#8 9/9 6,375 MiB 0,000 s OK
#9 9/9 6,410 MiB 0,000 s OK
#10 9/9 6,375 MiB 0,000 s OK
#11 10/10 6,410 MiB 0,000 s OK

Ocenjevani program (jungle.py):
n = int(raw_input())
karte = raw_input().split()
karte = [int(k) for k in karte]

igr = [[] for x in range(n)]
for i in range(len(karte)):
    igr[i % n].append(karte[i])
igr = [x[::-1] for x in igr]

odl = [[] for x in range(n)]

naPotezi = 0

konec = False
while not konec:
    if len(igr[naPotezi]) == 0:
        igr[naPotezi] = odl[naPotezi]
        odl[naPotezi] = []
        
    # zmagovalec
    if len(igr[naPotezi]) == 0:
        print naPotezi + 1
        break
    
    odl[naPotezi].append(igr[naPotezi][0])
    igr[naPotezi] = igr[naPotezi][1:]
    
    # karti z enako obliko?
    flag = False
    for i in range(1, n):
        k2 = (naPotezi + i) % n
        if len(odl[k2]) > 0 and (odl[naPotezi][-1] == odl[k2][-1]):
            igr[naPotezi] += odl[k2]
            igr[naPotezi] += odl[naPotezi]
            odl[naPotezi] = []
            odl[k2] = []
            
            # ze imamo zmagovalca?
            if len(igr[k2]) == 0:
                print k2 + 1
                konec = True
            
            # koncaj to
            flag = True
            break
    
    if not flag:
        naPotezi = (naPotezi + 1) % n