Pagini recente » Cod sursa (job #1822949) | Cod sursa (job #128673) | Cod sursa (job #1788433) | Cod sursa (job #1477398) | Cod sursa (job #2195936)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
int n,suma,num[101],top,scrt;
struct data{int s,a,b,c;} v[1000001];
int cmp(data a,data b){
return a.s<b.s;
}
int cautbin(int x)
{
int st=1,dr=top,mid;
while(st<=dr)
{
mid=(st+dr)/2;
if(x<v[mid].s) dr=mid-1;
else if(x>v[mid].s) st=mid+1;
else return mid;
}
return 0;
}
int main()
{
cin>>n>>suma;
for(int i=1;i<=n;i++)
cin>>num[i];
cin.close();
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
for(int k=j;k<=n;k++)
{
v[++top].s=num[i]+num[j]+num[k];
v[top].a=num[i];
v[top].b=num[j];
v[top].c=num[k];
}
sort(v+1,v+n+1,cmp);
int p=0;
for(int i=1;i<=top;i++)
{
p=cautbin(suma-v[i].s);
if(p>0)
{
cout<<v[i].a<<' '<<v[i].b<<' '<<v[i].c<<' '<<v[p].a<<' '<<v[p].b<<' '<<v[p].c;
i=top+1;
}
}
if(p==0) cout<<-1;
cout.close();
}