Cod sursa(job #3129880)

Utilizator dandragosDan Dragos dandragos Data 16 mai 2023 06:10:34
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.98 kb
# Deschide fișierul de intrare pentru citire
input_file = open("loto.in")

# Deschide fișierul de ieșire pentru scriere
output_file = open("loto.out", 'w')

# Citește prima linie a fișierului de intrare și extrage 'n' și 'total_sum'
n, total_sum = [int(x) for x in input_file.readline().split()]

# Citește a doua linie a fișierului de intrare și stochează numerele în tuplul 'numbers'
numbers = tuple(int(x) for x in input_file.readline().split())

# Dicționar pentru a stoca sumele și perechile de numere corespunzătoare
sum_dict = {}

# Calculează toate sumele posibile ale a trei numere din tuplul 'numbers' și le stochează în dicționarul 'sum_dict'
for num1 in numbers:
    for num2 in numbers:
        for num3 in numbers:
            current_sum = num1 + num2 + num3
            if current_sum not in sum_dict:
                sum_dict[current_sum] = (num1, num2)

# Variabilă pentru a indica dacă s-a găsit o combinație validă
found = False

# Găsește o combinație de trei numere astfel încât suma lor să se potrivească cu 'total_sum'
for num1 in numbers:
    if found:
        break
    for num2 in numbers:
        if found:
            break
        for num3 in numbers:
            current_sum = num1 + num2 + num3
            if total_sum - current_sum in sum_dict:
                found = True
                num1_pair, num2_pair = sum_dict[total_sum - current_sum][0], sum_dict[total_sum - current_sum][1]
                num3_pair = total_sum - current_sum - num1_pair - num2_pair
                output_file.write(f"{str(num1)} {str(num2)} {str(num3)} "
                                  f"{str(num1_pair)} {str(num2_pair)}"
                                  f" {str(num3_pair)}")
                break

# Dacă nu s-a găsit nicio combinație validă, se scrie '-1' în fișierul de ieșire
if not found:
    output_file.write('-1')

# Închide fișierele de intrare și de ieșire
input_file.close()
output_file.close()