Pagini recente » Cod sursa (job #1427379) | Cod sursa (job #1303335) | Cod sursa (job #1621112) | Cod sursa (job #2714737) | Cod sursa (job #923949)
Cod sursa(job #923949)
#include<algorithm>
#include<cstdio>
#include<vector>
using namespace std;
struct ss { int sum,a,b,c; };
vector<ss> sume;
ss aux;
int n,v[105];
bool cmp (ss aa, ss bb)
{
return aa.sum<bb.sum;
}
void proces ()
{
int i,j,k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
for (k=1; k<=n; k++)
{
aux.sum=v[i]+v[j]+v[k];
aux.a=v[i], aux.b=v[j], aux.c=v[k];
sume.push_back(aux);
}
}
int main ()
{
int s,i,st,dr,mij;
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for (i=1; i<=n; i++)
scanf("%d",&v[i]);
proces();
sort(sume.begin(),sume.end(),cmp);
vector<ss>::iterator it,ff;
for (it=sume.begin(); it!=sume.end(); ++it)
{
st=0, dr=n*n*n-1;
while (st<=dr)
{
mij=(st+dr)/2;
if (sume[mij].sum==s-(it->sum))
{
printf("%d %d %d %d %d %d\n",it->a,it->b,it->c,sume[mij].a,sume[mij].b,sume[mij].c);
return 0;
}
else if (sume[mij].sum<s-(it->sum))
st=mij+1;
else dr=mij-1;
}
}
printf("-1\n");
return 0;
}