Cod sursa(job #2730902)

Utilizator PopescuMihneaPopescu Mihnea-Valentin PopescuMihnea Data 26 martie 2021 23:47:20
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.46 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");

int main()
{
    int N,S,i,j,k,sum_cautat;
    bool ok;
    unordered_map<int,int> dict;
    f>>N>>S;
    vector <int> v(N);
    vector<int> sol;
    for (i=0; i<N; i++)
        f>>v[i];
    sort (v.begin(),v.end());
    for (i=0; i<N; i++)
        for (j=i; j<N; j++)
            for (k=j; k<N; k++)
                dict[v[i]+v[j]+v[k]]=1;
    for (i=0; i<N && !ok; i++)
        for (j=i; j<N && !ok; j++)
            for (k=j; k<N && !ok; k++)
                if (dict[S-v[i]-v[j]-v[k]])
                {
                    ok=1;
                    sum_cautat=S-v[i]-v[j]-v[k];
                    sol.push_back(v[i]);
                    sol.push_back(v[j]);
                    sol.push_back(v[k]);
                }
    if (!ok)
        g<<-1;
    else
    {
        ok=false;
        for (i=0; i<N && !ok; i++)
            for (j=i; j<N && !ok; j++)
                for (k=j; k<N && !ok; k++)
                    if (v[i]+v[j]+v[k]==sum_cautat)
                    {
                        sol.push_back(v[i]);
                        sol.push_back(v[j]);
                        sol.push_back(v[k]);
                        ok=true;
                    }
        sort(sol.begin(),sol.end());
        for (i=0; i<6; i++)
            g<<sol[i]<<" ";
    }
}