Pagini recente » Cod sursa (job #330755) | Cod sursa (job #835251) | Cod sursa (job #2114400) | Cod sursa (job #2684432) | Cod sursa (job #1053003)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int 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(int 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)
y=j-1;
else x=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;
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;i=p;r=1;}
}
if(r!=1)g<<-1;
g.close();
return 0;
}