Cod sursa(job #3156938)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 13 octombrie 2023 20:21:52
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb

#include <fstream>
#include <unordered_map>

using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");

#define MAXN 100

int v[MAXN+1];
unordered_map<int, int[3]>sum;

int main()
{
    int n, s;
    cin>>n>>s;
    int i;
    for(i=0; i<n; i++)
        cin>>v[i];

    int j, k, ok;
    long long restsum;
    ok=0;
    for(i=0; i<n && ok==0; i++)
    {
        for(j=i; j<n && ok==0; j++)
        {
            for(k=j; k<n && ok==0; k++)
            {
                //precalculare
                restsum=v[i]+v[j]+v[k];
                sum[restsum][0]=v[i];
                sum[restsum][1]=v[j];
                sum[restsum][2]=v[k];

                restsum=s-(v[i]+v[j]+v[k]);
                if(sum.find(restsum)!=sum.end()) //am gasit solutie
                {
                    cout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<sum[restsum][0]<<" "<<sum[restsum][1]<<" "<<sum[restsum][2];
                    ok=1;
                }
            }
        }
    }
    if(ok==0)
        cout<<-1;
    return 0;
}