Cod sursa(job #2894144)

Utilizator iulia.talpalariuIulia-Georgiana Talpalariu iulia.talpalariu Data 27 aprilie 2022 13:57:57
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 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;
    short i, j, k;
    fileIn >> n >> suma;

    for (i = 0; i < n ; i++) {
        fileIn >>v[i];
    }

   for(i= 0; i < n; i++)
        for (j = 0; j < n; j++)
            for (k = 0; k < n; k++) {
                multime.insert({v[i] + v[j]+ v[k], {i,j,k}});
        }


    std::unordered_map <int, std::tuple<short,short,short>> ::iterator ptr;
    for (ptr=multime.begin(); ptr!=multime.end(); ++ptr) {
        if (multime.find(suma-(*ptr).first)!= multime.end()) {
            std::tuple<short,short,short> tuplu1;
            std::tuple<short,short,short> tuplu2;
            tuplu1 = (*ptr).second;
            tuplu2 = (*multime.find(suma-(*ptr).first)).second;

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

            return 0;

        }
    }

    fileOut << -1;
    return 0;
}