Pagini recente » Cod sursa (job #3160676) | Cod sursa (job #3158316) | Cod sursa (job #2326781) | Cod sursa (job #856248) | Cod sursa (job #1028710)
#include <stdio.h>
#include <stdlib.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 100
#define M 350000
struct nr{int v;int m;};
int c(const void*a,const void*b){return (*(nr*)a).v-(*(nr*)b).v;}
int a[N];
int d[6];
nr b[M];
int main(){
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
int n,s,l=-1;
scanf("%i%i",&n,&s);
fr(i,0,n)scanf("%i",a+i);
fr(i,0,n)fr(j,i,n)fr(k,j,n){b[++l].v=a[i]+a[j]+a[k];b[l].m=i*n+j;}
++l;
qsort(b,l,sizeof(nr),c);
int i=0,j=l-1;
while(i<=j){
if(b[i].v+b[j].v==s){
d[0]=a[b[i].m%n];
d[1]=a[b[i].m/n];
d[2]=b[i].v-d[0]-d[1];
d[3]=a[b[j].m%n];
d[4]=a[b[j].m/n];
d[5]=b[j].v-d[3]-d[4];
fr(i,0,6)printf("%i ",d[i]);
return 0;
}
b[i].v+b[j].v>s?--j:++i;
}
printf("-1");
return 0;
}