Pagini recente » Cod sursa (job #699945) | Cod sursa (job #2658156) | Cod sursa (job #2343851) | Cod sursa (job #2292081) | Cod sursa (job #2892965)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("loto.in");
ofstream g ("loto.out");
int n,s,h, a[101], v[1000010], i, j, k, x;
int binar(int x)
{
int st=1, dr=h, mijl;
while(st<=dr)
{
mijl=(st+dr)/2;
if(v[mijl]==x)
return 1;
if (x<v[mijl])
dr=mijl-1;
else st=mijl+1;
}
return 0;
}
int main()
{
f>>n>>s;
for (i=1;i<=n;i++)
f>>a[i];
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
v[++h]=a[i]+a[j]+a[k];
sort(v+1,v+h+1);
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
{
x= s- a[i]- a[j]- a[k];
if (binar(x))
{
g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
for (i=1;i<=n;i++)
for (j=i;j<=n;j++)
for (k=j;k<=n;k++)
if (a[i]+a[j]+a[k]==x)
{
g<<a[i]<<" "<<a[j]<<" "<<a[k]<<" ";
g<<"\n";
exit(0);
}
}
}
g<<"-1\n";
return 0;
}