Mai intai trebuie sa te autentifici.
Cod sursa(job #1035653)
| Utilizator | 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;
}
