Pagini recente » Cod sursa (job #341734) | Cod sursa (job #3005354) | Cod sursa (job #2644920) | Cod sursa (job #330717) | Cod sursa (job #1558630)
#include<cstdio>
#include<bitset>
#include<algorithm>
using namespace std;
int s,st[11],i,j,n,m,kk,v[201],pp=0;
std::bitset<200000001> vc;
void back(int k,int sum)
{
if(pp==0)
{
int i;
if(k==6)
{
if(s-sum<=100000000&&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;
}
if(kk==0)
kk=n;
back(1,0);
if(pp==0)
printf("-1");
return 0;
}