Cod sursa(job #1035653)

Utilizator CatalinaRaduCatalina Elena Radu CatalinaRadu Data 18 noiembrie 2013 18:47:45
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb

#include <vector>
#include <ext/hash_set>
#include <cstdio>

using namespace std;

__gnu_cxx::hash_set <int> H;
int n,S,aux[101];
vector <int> sol;

int main()
{
    int i,j,k,s;
    freopen("loto.in","r",stdin);
    freopen("loto.out","w",stdout);
    scanf ("&d &d", &n, &S);
    for (i=1;i<=n;i++)
        scanf("&d",&aux[i]);
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
           for (k=1;k<=n;k++)
           {
               s=aux[i]+aux[j]+aux[k];
               if (s<S)
                H.insert(s);
           }
    s=-1;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
           for (k=1;k<=n;k++)
    {
        s=aux[i]+aux[j]+aux[k];
        if (H.find(S-s)!=H.end())
        {
            sol.push_back(aux[i]);
            sol.push_back(aux[j]);
            sol.push_back(aux[k]);
            S-=s;
            i=j=k=n+1;
        }
    }
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            for (k=1;k<=n;k++)
    {
        s=aux[i]+aux[j]+aux[k];
        if (S==s)
           {
            printf ("&d &d &d",aux[i],aux[j],aux[k]);
            for (vector<int>::iterator it=sol.begin();it!=sol.end();++it)
                printf("&d",*it);
                return 0;
           }
    }
    printf ("-1\n");
    return 0;


    }