Pagini recente » Cod sursa (job #2735063) | Cod sursa (job #71438) | Cod sursa (job #372576) | Cod sursa (job #1707649) | Cod sursa (job #2154482)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int nr[110];
struct prb
{
int s,a,b,c;
};
prb v[100010];
bool cmp (prb a, prb b)
{
return a.s<b.s;
}
int main()
{
ifstream fin ("loto.in");
ofstream fout ("loto.out");
int n,s,i,j,k,cnt=0,val,l1,l2,mij;
fin>>n>>s;
for(i=1; i<=n; i++)
fin>>nr[i];
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
for(k=i; k<=n; k++)
{
cnt++;
v[cnt].s=nr[i]+nr[j]+nr[k];
v[cnt].a=nr[i];
v[cnt].b=nr[j];
v[cnt].c=nr[k];
}
sort(v+1,v+cnt+1,cmp);
for(i=1; i<=cnt; i++)
{
val=s-v[i].s;
if(val<0)
break;
else
{
l1=i;
l2=cnt;
while(l1<=l2)
{
mij=(l1+l2)/2;
if(v[mij].s>val)
{
l2=mij-1;
}
else if(v[mij].s==val)
{
fout<<v[i].a<<" "<<v[i].b<<" "<<v[i].c<<" "<<v[mij].a<<" "<<v[mij].b<<" "<<v[mij].c;
return 0;
}
else
l1=mij+1;
}
}
}
fout<<"-1";
return 0;
}