Cod sursa(job #2894131)

Utilizator iulia.talpalariuIulia-Georgiana Talpalariu iulia.talpalariu Data 27 aprilie 2022 13:39:43
Problema Loto Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.55 kb
#include <fstream>
#include<unordered_map>


int main()
{
    std::ifstream fileIn("loto.in");
    std::ofstream fileOut("loto.out");
    int v[100];
    std::unordered_map<int, std::tuple<short,short,short>> multime;
    short n;
    int suma;
    int x;
    fileIn >> n >> suma;
    int maxim = -1;


    for (int i = 0; i < n ; i++) {

        fileIn >> x;
        v[i] = x;
        maxim = (x > maxim) ? x : maxim;

    }

    if (maxim* 6 < suma) {
        fileOut << -1;
        return 0;
}



   for(int i= 0; i < n; i++)
        for ( int j = 0; j < n; j++)
            for (int k = 0; k < n; k++) {
                std::tuple<short,short,short> tuplu (i,j,k);



                if (multime.find(suma-(v[i] + v[j]+ v[k]))!= multime.end()) {
                    std::tuple<short,short,short> tuplu2;
                    tuplu2 = (*multime.find(suma-(v[i] + v[j]+ v[k]))).second;

                    fileOut << v[std::get<0>(tuplu2)] << ' ';
                    fileOut << v[std::get<1>(tuplu2)]<< ' ';
                    fileOut << v[std::get<2>(tuplu2)]<< ' ';

                    fileOut << v[std::get<0>(tuplu)] << ' ';
                    fileOut << v[std::get<1>(tuplu)]<< ' ';
                    fileOut << v[std::get<2>(tuplu)]<< ' ';

                    return 0;


                }
                std::pair<int, std::tuple<short,short,short>>perechea ((v[i] + v[j]+ v[k]), tuplu);
                multime.insert(perechea);
        }



    fileOut << -1;

    return 0;

}