Pagini recente » Cod sursa (job #2251209) | Cod sursa (job #1246761) | Cod sursa (job #730986) | Cod sursa (job #98791) | Cod sursa (job #2002411)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
#define maxn 110
#define maxx 1000010
int n,s,l;
int a[maxn];
int v[maxx];
inline int search(int x)
{
int front=1,middle,back=l;
while (front<=back)
{
middle=(front+back)/2;
if (v[middle]==x) return 1;
else if (x<v[middle]) back=middle-1;
else front=middle+1;
}
return 0;
}
int main()
{
f>>n>>s;
int i,j,k,x;
for (i=1;i<=n;i++) f>>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))
{
g<<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)
{
g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
return 0;
}
}
}
g<<"-1";
return 0;
}