Pagini recente » Cod sursa (job #2648341) | Cod sursa (job #1210516) | Cod sursa (job #1078372) | Cod sursa (job #2387650) | Cod sursa (job #271613)
Cod sursa(job #271613)
#include<stdio.h>
#include<algorithm>
using namespace std;
int v[110],i,k,poz,S,j,l,x,poz1,poz2,n,ok,s,m,d;
struct sir {int suma,x,y,z;} sum[1000010];
int cmp(sir a,sir b)
{return a.suma<b.suma;}
int main()
{
FILE *f=fopen("loto.in","r");
FILE *g=fopen("loto.out","w");
fscanf(f,"%d %d",&n,&S);
for(i=1;i<=n;i++) fscanf(f,"%d",&v[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(l=j;l<=n;l++)
{ sum[++k].suma=v[i]+v[j]+v[l];
sum[k].x=v[i]; sum[k].y=v[j]; sum[k].z=v[l];
}
sort(sum+1,sum+1+k,cmp);
for(i=1;i<=k;i++)
{ x=S-sum[i].suma;s=1;d=k;
while(s<=d)
{ m=(s+d)>>1;
if(sum[m].suma>x) d=m-1;
else if(sum[m].suma<x) s=m+1;
else break;
}
if(s<=d) {ok=1; poz1=i; poz2=m; break;}
}
if(!ok) fprintf(g,"%s","-1");
else fprintf(g,"%d %d %d %d %d %d",sum[poz1].x,sum[poz1].y,sum[poz1].z,sum[poz2].x,sum[poz2].y,sum[poz2].z);
fclose(f);
fclose(g);
return 0;
}