Pagini recente » Cod sursa (job #481936) | Cod sursa (job #1560690) | Cod sursa (job #1187728) | Cod sursa (job #1791183) | Cod sursa (job #253478)
Cod sursa(job #253478)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct sume{unsigned int s,a,b,c;} v[1100000];
unsigned int x[105],m,k,d;
int i,j,l,n,p,q,mij ;
int cmp(sume a,sume b)
{return a.s<b.s;}
int main(){
freopen("loto.in","r",stdin);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&x[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(l=1;l<=n;l++)
{v[++k].s=x[i]+x[j]+x[l];
v[k].a=x[i];
v[k].b=x[j];
v[k].c=x[l];
}
sort(v+1,v+1+k,cmp);
freopen("loto.out","w",stdout);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(l=j;l<=n;l++)
{d=m-x[i]-x[j]-x[l];
if(d>0){
p=1;q=k;
while(p<=q)
{mij=(p+q)>>1;
if(v[mij].s==d)
{printf("%d %d %d %d %d %d\n",x[i],x[j],x[l],v[mij].a,v[mij].b,v[mij].c);
return 0;}
else
if(v[mij].s>d)
q=mij-1;
else
p=mij+1;
}
}
}
printf("-1\n");
return 0;}