Pagini recente » Cod sursa (job #1086388) | Cod sursa (job #3235134) | Cod sursa (job #2343930) | Cod sursa (job #1166030) | Cod sursa (job #1069423)
#include <stdio.h>
#include <algorithm>
using namespace std;
int n,s,l;
int a[110];
int v[1000010];
int search(int x)
{
int st=1,m,dr=l;
while (st<=dr)
{
m=(st+dr)/2;
if (v[m]==x) return 1;
else if (x<v[m]) dr=m-1;
else st=m+1;
}
return 0;
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %d ",&n,&s);
int i,j,k,x;
for (i=1;i<=n;i++) scanf("%d ",&a[i]);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++) v[++l]=a[i]+a[j]+a[k];
sort(v+1,v+l+1);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
{
x=s-a[i]-a[j]-a[k];
if (search(x))
{
printf("%d %d %d ",a[i],a[j],a[k]);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
if (a[i]+a[j]+a[k]==x)
{
printf("%d %d %d ",a[i],a[j],a[k]);
printf("\n");
return 0;
}
}
}
printf("-1\n");
return 0;
}