""" VBE2022 U1 sprendė Kauno 22-os vm abiturientas
KTU programų inžinerijos dėst. Eimutis Karčiauskas
"""
def skaityti(failo_vardas):
with open(failo_vardas) as f:
f.readline() # užduočių skaičius Python nereikalingas
laiko_lim = f.readline().split()
taškai = f.readline().split()
laiko_lim = list(map(int, laiko_lim))
taškai = list(map(int, taškai))
dalyviai = []
for eil in f:
vardas = eil[:10]
laikai = list(map(int, eil[10:].split()))
dalyviai.append((vardas, laikai))
return dalyviai, taškai, laiko_lim
def dalyvio_rez(dalyvis, taškai, laiko_lim):
vardas, laikai = dalyvis
dal_tšk = 0 # dalyvio taškai
dal_min = 0 # dalyvio minutės
teis_sk = 0 # dalyvio teisingų skaičius
for i, dl in enumerate(laikai):
if dl > 0: # jei dalyvio laikas > 0
teis_sk += 1
dal_min += dl
ut = taškai[i] # uždavinio taškai
dal_tšk += ut if dl <= laiko_lim[i] else ut//2
return vardas, teis_sk, dal_min, dal_tšk
def skaičiuoti(dalyvis, taškai, laiko_lim):
rezultatai = []
for d in dalyviai:
rezultatai.append(dalyvio_rez(d, taškai, laiko_lim))
return rezultatai
def spausdinti(rezultatai, failo_vardas):
max_tšk = max(dal_tšk for _, _, _, dal_tšk in rez)
rezultatai.sort(key = lambda dal: -dal[1])
with open(failo_vardas, "w") as f:
print(max_tšk, file=f)
for vardas, teis_sk, dal_min, dal_tšk in rezultatai:
if dal_tšk == max_tšk:
print(vardas, teis_sk, dal_min, file=f)
"""main dalis - kviečiame funkcijas"""
dalyviai, taškai, laiko_lim = skaityti("U1.txt")
rez = skaičiuoti(dalyviai, taškai, laiko_lim)
spausdinti(rez, "U1rez.txt")
6
10 10 20 15 15 20
2 2 5 3 3 5
Ignas 12 22 0 10 12 17
Skirmantas 5 12 0 40 12 30
Milda 10 10 20 22 31 23
Asta Ieva 5 0 17 10 23 23
Rima 8 0 14 23 12 23