Rezultati

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

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

Ocenjevani program (jungle_speed.py):
def print_igralec():
    print("Igralec {0} - roke: {1}".format(na_potezi, karte[na_potezi]))
    print("Igralec {0} - miza: {1}".format(na_potezi, karte_odlozene[na_potezi]))

def print_i_igralec():
    print("Igralec {0} - roke: {1}".format(i, karte[i]))
    print("Igralec {0} - miza: {1}".format(i, karte_odlozene[i]))

N = input()
N = int(N)
line = input()
line = line.split()

karte = []
karte_odlozene = []

for i in range(N):
    karte.append([])
    karte_odlozene.append([])

i = 0
while i < len(line):
    karte[i%N].append(int(line[i]))
    i += 1

karte = [x[::-1] for x in karte]

na_potezi = 0
imajo_karte = True

debug = False

if debug:
    print(karte, karte_odlozene)


while imajo_karte:
    if debug:
        print_igralec()
    # POTEZA START
    # če nima kart v roki in ima odložene
    if len(karte[na_potezi]) == 0 and len(karte_odlozene[na_potezi]) != 0:
        if debug:
            print("Poberimo svoje karte z mize.")
        karte[na_potezi] = karte_odlozene[na_potezi]
        karte_odlozene[na_potezi] = []
        if debug: print_igralec()
    # odloži karto na kupček
    if debug:
        print("Poteza.")
        print("Karte na mizi: ", karte_odlozene)
    karte_odlozene[na_potezi].append(karte[na_potezi][0])
    karte[na_potezi] = karte[na_potezi][1:]
    if debug: print_igralec()

    # primerjamo
    ali_je_enaka = False
    for i in range(N):
        # debugging
        if debug:
            if len(karte_odlozene[i])==0 and len(karte[i])==0:
                print("moralo bi biti konec")
        # debugging
        if i != na_potezi and karte_odlozene[i] != []:
            if karte_odlozene[na_potezi][-1] == karte_odlozene[i][-1]:
                if debug: print("Igralec {0} in {1} imata isti karti: {2} in {3}".format(na_potezi, i, karte_odlozene[na_potezi][-1],karte_odlozene[i][-1]))
                ali_je_enaka = True
                karte[na_potezi] = karte[na_potezi] + karte_odlozene[i] + karte_odlozene[na_potezi]
                karte_odlozene[i] = []
                karte_odlozene[na_potezi] = []
                if debug:
                    print_igralec()
                    print_i_igralec()
                # ali je i-ju zmanjkalo kart?
                if len(karte[i]) == 0 and len(karte_odlozene[i]) == 0:
                    if debug: print("Igralcu {0} je zmanjkalo kart.".format(i))
                    imajo_karte = False
                    zmagovalec = i
                break
    # če ni našel para, igra naslednji igralec, če se ujema, igra isti še enkrat
    if ali_je_enaka == False:
        na_potezi = (na_potezi + 1) % N
    if debug: print("---------------------------------")

print(zmagovalec+1)