Pagini recente » Cod sursa (job #472585) | Cod sursa (job #533732) | Cod sursa (job #2011881) | Cod sursa (job #1953630) | Cod sursa (job #253489)
Cod sursa(job #253489)
#include <cstdio>
#include <algorithm>
using namespace std;
class tri
{
public:
int x, y, z;
void init(int a, int b, int c)
{
x = a, y = b, z = c;
}
int sum()
{
return x + y + z;
}
};
tri v[101*101*101];
unsigned int nr[105],m,k,d;
int i,j,l,n,p,q,mij ;
int cmp(tri a,tri b)
{return a.sum()<b.sum();}
int main(){
freopen("loto.in","r",stdin);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&nr[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(l=1;l<=n;l++)
v[++k].init(nr[i],nr[j],nr[l]);
sort(v+1,v+1+k,cmp);
freopen("loto.out","w",stdout);
for(i=1;i<=n;++i)
for(j=i;j<=n;++j)
for(l=j;l<=n;++l)
{d=m-nr[i]-nr[j]-nr[l];
if(d>0){
p=1;q=k;
while(p<=q)
{mij=(p+q)>>1;
if(v[mij].sum()==d)
{printf("%d %d %d %d %d %d\n",nr[i],nr[j],nr[l],v[mij].x,v[mij].y,v[mij].z);
return 0;}
else
if(v[mij].sum()>d)
q=mij-1;
else
p=mij+1;
}
}
}
printf("-1\n");
return 0;}