Pagini recente » Cod sursa (job #1974215) | Cod sursa (job #2789542) | Cod sursa (job #242160) | Cod sursa (job #1672211) | Cod sursa (job #2973901)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("loto.in");
ofstream fout ("loto.out");
struct el
{
int sum,a,b,c;
};
el v[1000001];
int cmp (const el &x,const el &y)
{
return x.sum<y.sum;
}
int n,s,i,j,k,l[101],di,nrc,st,dr,mij;
int main()
{
fin>>n>>s;
for (i=1; i<=n; i++)
fin>>l[i];
for (i=1; i<=n; i++)
{
for (j=i; j<=n; j++)
{
for (k=j; k<=n; k++)
v[++nrc]={l[i]+l[j]+l[k],l[i],l[j],l[k]};
}
}
sort (v+1,v+nrc+1,cmp);
for (i=1; i<=nrc; i++)
{
di=s-v[i].sum;
st=1;
dr=nrc;
while (st<=dr)
{
mij=(st+dr)/2;
if (v[mij].sum==di)
{
fout<<v[i].a<<" "<<v[i].b<<" "<<v[i].c<<" "<<v[mij].a<<" "<<v[mij].b<<" "<<v[mij].c;
return 0;
}
if (di<v[mij].sum)
dr=mij-1;
else
st=mij+1;
}
}
fout<<-1;
return 0;
}