Pagini recente » Cod sursa (job #582301) | Cod sursa (job #1966315) | Cod sursa (job #1339704) | Cod sursa (job #3200013) | Cod sursa (job #757086)
Cod sursa(job #757086)
#include<cstdio>
using namespace std;
int v[101],v2[101],aux[101],vt[7];
void sortare(int l,int r)
{
if(l==r)return;
int m=(l+r)>>1,i=l,j=m+1,k=l;
sortare(l,m);sortare(m+1,r);
while(i<=m||j<=r)
if(r<j||i<=m&&v[i]<v[j])
aux[k++]=v[i++];
else
aux[k++]=v[j++];
for(;l<=r;l++)
v[l]=aux[l];
}
int main()
{
freopen("loto.in","r",stdin);freopen("loto.out","w",stdout);
int n,s,i,j=6,s2=0;
scanf("%d%d",&n,&s);aux[0]=s;
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
sortare(1,n);v2[1]=v[1];
for(i=2;i<=n;i++)
v2[i]=v2[i-1]+v[i];
for(i=n;i>=1&&j>=1;)
if(s>=v2[i])
vt[j--]=v[i],s-=v[i],s2+=v[i];
else
vt[j--]=v[--i],s-=v[i],s2+=v[i];
if(s2==aux[0])
for(i=1;i<=6;i++)
printf("%d ",vt[i]);
else
printf("-1");
}