Pagini recente » Cod sursa (job #2949872) | Cod sursa (job #2413957) | Cod sursa (job #1765857) | Cod sursa (job #83959) | Cod sursa (job #1052997)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
long long s,S, v[1000000];int n,i,j,k,p,ok,x,y;
struct nod{int a,b,c,d;};
nod v1[1000000],m;
bool cmp(nod x,nod y)
{return x.d<y.d; }
int caut(long long ok, int x, int y)
{int j;
while (x<=y)
{ j=(x+y)/2;
if(ok==v1[j].d) return j;
else
if(ok<v1[j].d)
x=j+1;
else y=j-1;
}
return -1;
}
int main()
{
f>>n>>s;
for(i=0;i<n;i++)
f>>v[i];
f.close();p=0;
for(i=0;i<n;i++)
for(j=i;j<n;j++)
for(k=j;k<n;k++)
{
p++;
v1[p].d=v[i]+v[j]+v[k];
v1[p].a=v[i];
v1[p].b=v[j];
v1[p].c=v[k];
}
sort(v1+1,v1+p+1,cmp);
// for(S=1;S<=p;S++)
// g<<v1[S].a<<' '<<v1[S].b<<' '<<v1[S].c<<' '<<v1[S].d<<'\n';
int r=1;
for(i=1;i<=p;i++)
{
ok=s-v1[i].d;
r=caut(ok,1,n);//g<<r<<",,,,,,,,,,,,";
if(r==-1) g<<"-1";
else
{g<<v1[i].a<<' '<<v1[i].b<<' '<<v1[i].c<<' '<<v1[r].a<<' '<<v1[r].b<<' '<<v1[r].c;i=p;}
}
g.close();
return 0;
}