# Operatori za pakovanje i raspakivanje: *
# Funkcije: sum(), min(), zip()
# Metode za rad sa stringovima: strip(), lower()
# Metode za rad sa rečnicima: items()

bodovanje = {'-1': -3.75, '0': 0, '1': 15}
rezultati = {}
with open('poeni.csv') as ulaz:
    for red in ulaz:
        red = [x.strip() for x in red.split(",")]
        indeks, ime_prezime, kolokvijum, *pitalice, zadatak = red
        broj, godina = indeks.split("/")
        ime, prezime = ime_prezime.split()
        gg = godina[2:]
        bbbb = "{:0>4}".format(broj)
        i = ime[0].lower()
        p = prezime[0].lower()
        student = p + i + gg + bbbb
        poeni = sum([bodovanje[pitalica] for pitalica in pitalice])
        poeni = min(poeni, 45) + float(zadatak) * 0.55
        if student not in rezultati:
            rezultati[student] = [kolokvijum], [poeni]
        else:
            rezultati[student][0].append(kolokvijum)
            rezultati[student][1].append(poeni)
for kljuc, vrednost in rezultati.items():
    with open(kljuc + '.txt', 'w') as izlaz:
        ukupno = 0
        for kolokvijum, poeni in zip(vrednost[0], vrednost[1]):
            izlaz.write("{}: {:6.2f}\n".format(kolokvijum, poeni))
            ukupno += poeni * 0.3 if kolokvijum == 'K1' else poeni * 0.35
        izlaz.write("UK: {:6.2f}\n".format(ukupno))