Cod sursa(job #2190683)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 31 martie 2018 15:03:43
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

int v[105];
unordered_map <int,bool> frecv;

int main()
{
    int n,S;
    fin >> n >> S;
    for(int i=1;i<=n;i++)
    {
        fin >> v[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            for(int u=j;u<=n;u++)
            {
                frecv[v[i]+v[j]+v[u]]=1;
            }
        }
    }
    int dif=-1;
    int ok=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            for(int u=j;u<=n;u++)
            {
                if(frecv.find(S-v[i]-v[j]-v[u])!=frecv.end()) /// daca nu gaseste returneaza frecv.end();
                {
                    fout << v[i] << ' ' << v[j] << ' ' << v[u] << ' ';
                    dif=S-v[i]-v[j]-v[u];
                    ok=1;
                    break;
                }
            }
            if(ok==1) break;
        }
        if(ok==1) break;
    }
    if(dif==-1)
    {
        fout << -1;
        return 0;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i;j<=n;j++)
        {
            for(int u=j;u<=n;u++)
            {
                if(v[i]+v[j]+v[u]==dif)
                {
                    fout << v[i] << ' ' << v[j] << ' ' << v[u];
                    return 0;
                }
            }
        }
    }

    return 0;
}