Cod sursa(job #2731182)

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

struct suma{
    bool exista=false;
    int i,j,k;
};

int main()
{
    int N,S,i,j,k;
    bool ok=false;
    unordered_map<int,suma> dict;
    f>>N>>S;
    vector <int> v(N);
    for (i=0; i<N; i++)
        f>>v[i];
    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]].exista=1;
                dict[v[i]+v[j]+v[k]].i=v[i];
                dict[v[i]+v[j]+v[k]].j=v[j];
                dict[v[i]+v[j]+v[k]].k=v[k];
            }
    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]].exista)
                {
                    ok=1;
                    g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                    g<<dict[S-v[i]-v[j]-v[k]].i<<" "<<dict[S-v[i]-v[j]-v[k]].j<<" "<<dict[S-v[i]-v[j]-v[k]].k;
                }
    if (!ok)
        g<<-1;
}