Pagini recente » Cod sursa (job #2606046) | Cod sursa (job #2077702) | Cod sursa (job #2606709) | Cod sursa (job #2589118) | Cod sursa (job #555498)
Cod sursa(job #555498)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define ll long long
#define nrn 105
struct neu{ll s,a,b,c;};
ll V[nrn];
neu suma[nrn*nrn*nrn];
FILE *in=fopen("loto.in","r"),*out=fopen("loto.out","w");
int cmp(neu x,neu y)
{
return x.s<y.s;
}
int main()
{
int ln=0,i,j,z,lf,rt,mid,n,k;
fscanf(in,"%d %d",&n,&k);
for(i=1;i<=n;++i)
fscanf(in,"%lld",&V[i]);
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(z=j;z<=n;++z)
{
ln++;
suma[ln].a=V[i];
suma[ln].b=V[j];
suma[ln].c=V[z];
suma[ln].s=V[i]+V[j]+V[z];
}
sort(suma+1,suma+1+ln,cmp);
for(i=1;i<=ln;++i)
{
lf=1;rt=ln;
while(lf<=rt)
{
mid=(lf+rt)/2;
if(suma[mid].s+suma[i].s==k)
{
fprintf(out,"%lld ",suma[i].a);
fprintf(out,"%lld ",suma[i].b);
fprintf(out,"%lld ",suma[i].c);
fprintf(out,"%lld ",suma[mid].a);
fprintf(out,"%lld ",suma[mid].b);
fprintf(out,"%lld\n",suma[mid].c);
return 0;
}
if(suma[mid].s+suma[i].s<k)
lf=mid+1;
else rt=mid-1;
}
}
fprintf(out,"-1\n");
return 0;
}