Pagini recente » Cod sursa (job #1849752) | Cod sursa (job #1003728) | Cod sursa (job #2275654) | Cod sursa (job #15757) | Cod sursa (job #2445558)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct nod{
int sum;
int x, y, z;
}v[1000003];
int n, s, l, a[103];
bool cmp(nod x, nod y)
{
return x.sum<y.sum;
}
int main()
{
fin>>n>>s;
for(int i=1;i<=n;++i)
fin>>a[i];
for(int i=1;i<=n;++i)
for(int j=i;j<=n;++j)
for(int k=j;k<=n;++k)
{
++l;
v[l].x=a[i];
v[l].y=a[j];
v[l].z=a[k];
v[l].sum=v[l].x+v[l].y+v[l].z;
}
sort(v+1, v+l+1, cmp);
for(int i=1;i<=l;++i)
{
int x=s-v[i].sum;
int st=1, dr=l, m;
while(dr>st)
{
m=(dr+st)/2;
if(v[m].sum<x) st=m+1;
else if(v[m].sum>x) dr=m-1;
else
{
fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[m].x<<" "<<v[m].y<<" "<<v[m].z<<"\n";
return 0;
}
}
m=(dr+st)/2;
if(x==v[m].sum)
{
fout<<v[i].x<<" "<<v[i].y<<" "<<v[i].z<<" "<<v[m].x<<" "<<v[m].y<<" "<<v[m].z<<"\n";
return 0;
}
}
fout<<-1<<"\n";
return 0;
}