Pagini recente » Cod sursa (job #2235937) | Cod sursa (job #313836) | Cod sursa (job #652098) | Cod sursa (job #2512097) | Cod sursa (job #94503)
Cod sursa(job #94503)
#include<stdio.h>
#include<stdlib.h>
struct trei{
int i,j,k;
};
int comp(const void *a,const void *b)
{
trei *aa=(trei *)a,*bb=(trei *)b;
trei x=*aa,y=*bb;
if(x.i<y.i)
return -1;
if(x.i==y.i)
return 0;
if(x.i>y.i)
return 1;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int i,j,k,n,s,q[100],t=0,mij,w=0,x;
trei v[1000005];
scanf("%d%d",&n,&s);
for(i=0;i<n;i++)
scanf("%d",&q[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
{
v[t].i=q[i]+q[j]+q[k];
v[t].j=q[i];
v[t].k=q[j];
t++;
}
qsort(v,n*n*n,sizeof(v[0]),comp);
for(i=0;i<n*n*n;i++)
{
x=n*n*n/2;t=0;
while(v[x].i!=s-v[i].i&&t<=n*n*n/2)
{
if(v[x].i>s-v[i].i)
x=x/2;
if(v[x].i<s-v[i].i)
x=(x+n*n*n)/2;
t++;
}
if(v[x].i==s-v[i].i)
{
printf("%d %d %d %d %d %d",v[i].j,v[i].k,v[i].i-v[i].k-v[i].j,v[x].j,v[x].k,v[x].i-v[x].j-v[x].k);
w=1;
break;
}
}
if(w==0)
printf("-1");
return 0;
}