Pagini recente » Cod sursa (job #2741443) | Cod sursa (job #2458146) | Cod sursa (job #938625) | Cod sursa (job #2533417) | Cod sursa (job #792068)
Cod sursa(job #792068)
#include<fstream>
#include<algorithm>
#define dim 123456
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int n,m,i,j,k,s,p;
int x;
int a[dim];
int b[dim];
inline int loton(int x)
{
int li=1,ls=k,mij;
while(li<=ls)
{
mij=(li+ls)>>1;
if(b[mij]==x)
return 1;
else
if(b[mij]<x)
li=mij+1;
else
ls=mij-1;
}
return 0;
}
void first()
{
k=0;
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(p=j;p<=n;++p)
{
++k;
b[k]=a[i]+a[j]+a[p];
}
sort(b+1,b+k+1);
}
int main()
{
f>>n>>s;
for(i=1;i<=n;++i)
f>>a[i];
first();
for(i=1;i<=k;++i)
if(loton(s-b[i]))
{
x=b[i];
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(p=j;p<=n;++p)
if(a[i]+a[j]+a[p]==x)
{
g<<a[i]<<' '<<a[j]<<' '<<a[p]<<' ';
x=s-x;
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(p=j;p<=n;++p)
if(a[i]+a[j]+a[p]==x)
{
g<<a[i]<<' '<<a[j]<<' '<<a[p]<<'\n';
return 0;
}
}
}
g<<-1<<'\n';
return 0;
}