Cod sursa(job #2895901)

Utilizator cosminnnnnnnaDuca Cosmina cosminnnnnnna Data 29 aprilie 2022 16:02:50
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

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

struct tuplu {
    int a, b, c;
};

unordered_map <int, tuplu> sume;

int nr, suma_finala, numere[10001], suma;

int main() {
    fin >> nr >> suma_finala;
    for (int i=0; i<nr; i++)
        fin >> numere[i];

    for(int i = 0; i < nr; i++)
        for(int j = i; j < nr; j++)
            for(int k = j; k < nr; k++){
                tuplu aux;
                aux.a = i;
                aux.b = j;
                aux.c = k;
                suma = numere[i] + numere[j] + numere[k];
                sume[suma] = aux;
            }

    int ok = 0;

    for(int i = 0; i < nr && ok == 0; i++)
        for(int j = i; j < nr && ok == 0; j++)
            for(int k = j; k < nr && ok == 0; k++){
                suma = numere[i] + numere[j] + numere[k];
                suma = suma_finala - suma;
                if (sume.find(suma) != sume.end()){
                    tuplu aux = sume[suma];
                    fout << numere[i] << " " << numere[j] << " " << numere[k] << " " << numere[aux.a] << " " << numere[aux.b] << " " << numere[aux.c] << endl;
                    ok = 1;
                }
            }

    if (ok == 0)
        fout << -1 << endl;

    return 0;
}