Cod sursa(job #3129881)

Utilizator dandragosDan Dragos dandragos Data 16 mai 2023 06:12:16
Problema Loto Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 1.8 kb
# 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()