Pagini recente » Cod sursa (job #100728) | Cod sursa (job #1980739) | Cod sursa (job #791508) | Cod sursa (job #1963448) | Cod sursa (job #1514391)
#include <stdio.h>
#include <algorithm>
using namespace std;
FILE *fin=fopen("loto.in","r");
FILE *fout=fopen("loto.out","w");
struct loto
{
int x,y,z,suma;
}v[1000004];
int compare(loto x,loto y)
{
return x.suma<y.suma;
}
int i,j,k,p,n,s,a[102],b[1000002],nr,ind,sol[8];
int main()
{
fscanf(fin,"%d%d",&n,&s);
for(i=1;i<=n;i++)fscanf(fin,"%d",&a[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(p=j;p<=n;p++)
{
k++;
v[k].suma=a[i]+a[j]+a[p];
v[k].x=a[i];
v[k].y=a[j];
v[k].z=a[p];
}
sort(v+1,v+k+1,compare);
for(i=1;i<=k;i++)b[i]=v[i].suma;
for(i=1;i<=k;i++)
{
nr=v[i].suma;
nr=s-nr;
ind=upper_bound(b+1,b+k+1,nr)-b;
ind--;
if(v[ind].suma==nr)
{
sol[1]=v[i].x;
sol[2]=v[i].y;
sol[3]=v[i].z;
sol[4]=v[ind].x;
sol[5]=v[ind].y;
sol[6]=v[ind].z;
sort(sol+1,sol+7);
for(j=1;j<=6;j++)fprintf(fout,"%d ",sol[j]);
return 0;
}
}
fprintf(fout,"-1");
return 0;
}