Pagini recente » Cod sursa (job #2336317) | Cod sursa (job #2158297) | Cod sursa (job #61483) | Cod sursa (job #1783027) | Cod sursa (job #3129881)
# Deschide fișierul de intrare pentru citire
fisier_intrare = open("loto.in")
# Deschide fișierul de ieșire pentru scriere
fisier_iesire = open("loto.out", 'w')
# Citește prima linie a fișierului de intrare și extrage 'n' și 'suma_totala'
n, suma_totala = [int(x) for x in fisier_intrare.readline().split()]
# Citește a doua linie a fișierului de intrare și stochează numerele în tuplul 'numere'
numere = tuple(int(x) for x in fisier_intrare.readline().split())
# Dicționar pentru a stoca sumele și perechile de numere corespunzătoare
d = {}
# Calculează toate posibilele sume ale a trei numere din tuplul 'numere' și le stochează în dicționarul 'd'
for i in numere:
for j in numere:
for k in numere:
suma = i + j + k
if suma not in d:
d[suma] = (i, j)
# Variabilă pentru a indica dacă s-a găsit o combinație validă
gata = False
# Găsește o combinație de trei numere astfel încât suma lor să se potrivească cu 'suma_totala'
for i in numere:
if gata:
break
for j in numere:
if gata:
break
for k in numere:
suma = i + j + k
if suma_totala - suma in d:
gata = True
ii, ij = d[suma_totala - suma][0], d[suma_totala - suma][1]
ik = suma_totala - suma - ii - ij
fisier_iesire.write(f"{str(i)} {str(j)} {str(k)} "
f"{str(ii)} {str(ij)}"
f" {str(ik)}")
break
# Dacă nu s-a găsit nicio combinație validă, se scrie '-1' în fișierul de ieșire
if not gata:
fisier_iesire.write('-1')
# Închide fișierele de intrare și de ieșire
fisier_intrare.close()
fisier_iesire.close()