Cod sursa(job #3131164)

Utilizator dariutTache Daria dariut Data 19 mai 2023 13:15:54
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <fstream>
#include <unordered_map>
using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

struct Triplet {
    int num1, num2, num3;
};

unordered_map<int, Triplet> numberMap;
int numbers[105];

void buildNumberMap(int numbers[], int N, unordered_map<int, Triplet>& numberMap) {
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            for (int k = 0; k < N; k++)
                numberMap[numbers[i] + numbers[j] + numbers[k]] = { numbers[i], numbers[j], numbers[k] };
        }
    }
}


int main() {
    int N, S;
    fin >> N >> S;

    for (int i = 0; i < N; i++)
        fin >> numbers[i];


    buildNumberMap(numbers, N, numberMap);

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            for (int k = 0; k < N; k++) {
                int targetSum = S - numbers[i] - numbers[j] - numbers[k];
                if (numberMap.count(targetSum) > 0) {
                    Triplet t = numberMap[targetSum];
                    fout << numbers[i] << " " << numbers[j] << " " << numbers[k] << " ";
                    fout << t.num1 << " " << t.num2 << " " << t.num3;
                    return 0;
                }
            }
        }
    }

    fout << -1;
    return 0;
}