Cod sursa(job #2739976)

Utilizator andre.anghelacheAndreea Anghelache andre.anghelache Data 10 aprilie 2021 20:16:23
Problema Loto Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;

int main() {
    ifstream in("loto.in");
    ofstream out("loto.out");

    int n, S, x, i, j, k;
    vector<int> numere;
    unordered_map<int, vector<int>> myhash;

    in>>n>>S;

    for(i=0; i<n; i++)
    {
        in>>x;
        numere.push_back(x);
    }

    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            for(k=0; k<n; k++)
            {
                int suma=numere[i]+numere[j]+numere[k];

                if(suma<=S)
                    { vector<int> elemente_suma;
                    elemente_suma.push_back(numere[i]);
                    elemente_suma.push_back(numere[j]);
                    elemente_suma.push_back(numere[k]);
                    myhash[suma] = elemente_suma;
                    }
            }

//    for(auto &elem:myhash)
//    {cout<<elem.first<<" ";
//    for(int i=0; i<elem.second.size(); i++)
//    cout<<elem.second[i]<<" ";
//    cout<<"\n";}

    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            for(k=0; k<n; k++)
            {
                if(myhash.find(S-numere[i]-numere[j]-numere[k])!=myhash.end())
                {
                    out<<numere[i]<<" "<<numere[j]<<" "<<numere[k]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][0]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][1]<<" "<<myhash[S-numere[i]-numere[j]-numere[k]][2];
                    i=n; j=n; k=n;
                }
            }

    if(i==n)
        out<<-1;

    return 0;
}