Pagini recente » Cod sursa (job #2159253) | Cod sursa (job #2299392) | Cod sursa (job #1622512) | Cod sursa (job #788282) | Cod sursa (job #323548)
Cod sursa(job #323548)
#include<stdio.h>
#include<algorithm>
using namespace std;
long long a[100];
long long s;
long long sor[1000001],i,j,k,n,nr;
struct nod
{ long long x,y,z,s;
} b[1000001];
bool fcomp(int x,int y)
{ return b[x].s<b[y].s;
}
int main()
{ freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %lld",&n,&s);
for(i=1;i<=n;i++) scanf("%lld",&a[i]);
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
for(k=j;k<=n;k++)
{ b[++nr].x=a[i];
b[nr].y=a[j];
b[nr].z=a[k];
b[nr].s=a[i]+a[j]+a[k];
sor[nr]=nr;
}
sort(sor+1,sor+nr+1,fcomp);
k=nr;
for(i=1;i<=nr&&k>0;++i)
{
while(b[sor[i]].s+b[sor[k]].s>s&&k>0) --k;
if(k<=0) break;
if(b[sor[i]].s+b[sor[k]].s==s) { printf("%lld ",b[sor[i]].x);
printf("%lld ",b[sor[i]].y);
printf("%lld ",b[sor[i]].z);
printf("%lld ",b[sor[k]].x);
printf("%lld ",b[sor[k]].y);
printf("%lld\n",b[sor[k]].z);
fclose(stdin);
fclose(stdout);
return 0;
}
}
printf("-1\n");
fclose(stdin);
fclose(stdout);
return 0;
}