Pagini recente » Cod sursa (job #2223951) | Cod sursa (job #2324809) | Cod sursa (job #1552549) | Cod sursa (job #617037) | Cod sursa (job #444908)
Cod sursa(job #444908)
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,s,a[101],v[1000002];
void citire()
{
freopen("loto.in","r",stdin);
scanf("%d%d",&n,&s);
int i,j,k;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
v[0]=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
v[++v[0]]=a[i]+a[j]+a[k];
}
int main()
{
int dr,st,m,i,ss,p,q;
citire();
sort(v+1,v+1+v[0]);
freopen("loto.out","w",stdout);
for(i=1;i<=n;i++)
for(q=1;q<=n;q++)
for(p=1;p<=n;p++)
{
ss=s-a[i]-a[q]-a[p];
st=1;dr=v[0];
while(st<dr)
{
m=(st+dr)/2;
if(v[m]==ss)
{
printf("%d %d %d ",a[i],a[q],a[p]);
int j,k,l;
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
for(l=1;l<=n;l++)
{
if(a[l]+a[k]+a[j]==ss)
{printf("%d %d %d\n",a[j],a[k],a[l]);
return 0;}
}
}
if(v[m]<ss)
st=m+1;
else
dr=m;
}
}
printf("-1\n");
return 0;
}