Pagini recente » Cod sursa (job #1294140) | Cod sursa (job #2001911) | Cod sursa (job #798079) | Cod sursa (job #1811949) | Cod sursa (job #1558614)
#include<cstdio>
#include<bitset>
#include<algorithm>
using namespace std;
int s,st[7],i,j,n,m,kk,v[101],pp=0;
std::bitset<100000001> vc;
void back(int k,int sum)
{
if(pp==0)
{
int i;
if(k==6)
{
if(vc[s-sum]==1)
{
pp=1;
for(i=1;i<=5;i++)
printf("%d ",v[st[i]]);
printf("%d ",s-sum);
}
}
else
for(i=st[k-1];i<=kk;i++)
if(sum+v[i]+(6-k)*v[kk]>=s)
{
st[k]=i;
back(k+1,sum+v[i]);
}
}
}
int main ()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
vc[v[i]]=1;
}
sort(v+1,v+n+1);
st[0]=1;
for(i=n;i>=1;i--)
if(v[i]<s)
{
kk=i;
break;
}
back(1,0);
if(pp==0)
printf("-1");
return 0;
}