Pagini recente » Cod sursa (job #1796223) | Cod sursa (job #2138835) | Cod sursa (job #1098891) | Cod sursa (job #1539010) | Cod sursa (job #1337024)
#include <iostream>
#include <fstream>
#include <algorithm>
#define NMAX 100000000
using namespace std;
int n, s, i, j, k, nr, este, v[NMAX+1];
struct ceva
{
int first;
int second;
int third;
int s;
} x[NMAX+1];
bool cmp(ceva a,ceva b)
{
return a.s<b.s;
}
int main()
{
ifstream cin("loto.in");
ofstream cout("loto.out");
cin>>n>>s;
for(i=1; i<=n; i++)
cin>>v[i];
for(i=1; i<=n; i++)
for(j=i; j<=n; j++)
for(k=j; k<=n; k++)
nr++,x[nr].first=v[i],x[nr].second=v[j],x[nr].third=v[k],x[nr].s=x[nr].first+x[nr].second+x[nr].third;
sort(x+1,x+nr+1,cmp);
este=1;
for(i=1; i<=nr; i++)
{
int suma=s-x[i].s;
int st=1;
int dr=nr;
while(st<=dr&&este)
{
int med=(st+dr)/2;
if(x[med].s==suma)
{
cout<<x[i].first<<' '<<x[i].second<<' '<<x[i].third<<' '<<x[med].first<<' '<<x[med].second<<' '<<x[med].third<<'\n';
este=0;
}
if(x[med].s>suma)
dr=med-1;
if(x[med].s<suma)
st=med+1;
}
}
if(este)
cout<<-1<<'\n';
return 0;
}