Pagini recente » Cod sursa (job #1035755) | Cod sursa (job #1371696) | Cod sursa (job #2853341) | Cod sursa (job #2281282) | Cod sursa (job #1035653)
#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;
}