Pagini recente » Cod sursa (job #891013) | Cod sursa (job #2802351) | Cod sursa (job #1940901) | Cod sursa (job #1885837) | Cod sursa (job #1052981)
#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 ok, int x, int y)
{int j,r;
while (x<=y)
{ j=(x+y)/2;
if(ok==v1[j].d) {r=j;break;}
else if(ok<v1[j].d)
y=j-1;
else x=j+1;}
if(x<=y)return r; else 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=0;j<n;j++)
for(k=0;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<<v1[i].a<<' '<<v1[i].b<<' '<<v1[i].c<<' '<<v1[r].a<<' '<<v1[r].b<<' '<<v1[r].c; g.close();return 0;}
}
g<<"-1";
g.close();
return 0;
}