Pagini recente » Cod sursa (job #2778501) | Cod sursa (job #1668836) | Cod sursa (job #2245359) | Cod sursa (job #2151024) | Cod sursa (job #1558678)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,s,pp;
int v[101],st[7];
bool vc[100000001];
void back(int k)
{if(pp==0)
{if(k==6)
{int i;
if(s-st[0]>=0&&s-st[0]<=100000000&&vc[s-st[0]]==1)
{for(i=1;i<=5;i++)
printf("%d ",v[st[i]]);
printf("%d ",s-st[0]);
pp=1;
}
}
else
{int i;
for(i=st[k-1];i<n;i++)
if(st[0]+v[i]<=s)
{st[0]+=v[i];
st[k]=i;
back(k+1);
st[0]-=v[i];
}
else
i=n+1;
}
}
}
int main ()
{freopen ("loto.in","r",stdin);
freopen ("loto.out","w",stdout);
int i;
scanf("%d%d",&n,&s);
for(i=0;i<n;i++)
{scanf("%d",&v[i]);
vc[v[i]]=1;
}
sort(v,v+n);
back(1);
if(pp==0)
printf("-1");
return 0;
}