Pagini recente » Cod sursa (job #1938206) | Cod sursa (job #468895) | Cod sursa (job #2243853) | Cod sursa (job #3030881) | Cod sursa (job #53398)
Cod sursa(job #53398)
#include<cstdio>
int a[110];
void intersc(int x,int y)
{
int aux;
aux=a[x];
a[x]=a[y];
a[y]=aux;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,s,v[110];
scanf("%d %d",&n,&s);
int i,j,k;
for(i=1;i<=n;++i)
{
scanf("%d",&a[i]);
j=i;
while(j/2 && a[j/2]<a[j])
{
intersc(j/2,j);
j/=2;
}
}
i=n;
while(i)
{
intersc(1,i);
i--;
j=1;
while(1)
{
k=2*j;
if(k>i) break;
if(k+1<=i && a[k+1]>a[k]) k++;
if(a[j] >= a[k]) break;
intersc(j,k);
j=k;
}
}
for(i=1;i<=n;i++) v[i]=a[n+1-i];
int sum,i1,i2,i3,i4,i5,t,gast=0;
int li,lf,m;
lf=2; li=1;
for(i1=1;i1<=n&&gast==0;++i1)
{
sum=v[i1];
for(i2=1;i2<=n&gast==0;++i2)
{
sum=v[i1];
sum+=v[i2];
for(i3=1;i3<=n&&gast==0;++i3)
{
sum=v[i1]+v[i2];
sum+=v[i3];
for(i4=1;i4<=n&&gast==0;++i4)
{
sum=v[i1]+v[i2]+v[i3];
sum+=v[i4];
for(i5=1;i5<=n&&gast==0;++i5)
{
sum=v[i1]+v[i2]+v[i3]+v[i4]+v[i5];
t=s-sum;
if(t>=0)
{
li=1;
lf=n;
while(li<=lf)
{
m=(li+lf)/2;
if(v[m]==t)break;
else
if(v[m]>t)
li=m+1;
else
lf=m-1;
}
if(li<=lf) {gast=1; printf("%d %d %d %d %d %d",v[m],v[i5],v[i4],v[i3],v[i2],v[i1]);}
}
}
}
}
}
}
if(gast==0) printf("-1");
return 0;
}