Pagini recente » Cod sursa (job #1042988) | Cod sursa (job #52667) | Cod sursa (job #2715947) | Cod sursa (job #606019) | Cod sursa (job #1303912)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream is("loto.in");
ofstream os("loto.out");
int n, st, dr, mij, nr;
struct jum{
long long s;
int a, b, c;
};
long long suma;
jum x[400000];
int v[102];
bool comp( jum i, jum j )
{
return i.s < j.s;
}
int main()
{
is >> n >> suma;
for ( int i = 1; i <= n; i++ )
is >> v[i];
for ( int i = 1; i <= n; i++ )
for ( int j = i; j <= n; j++ )
for ( int k = j; k <= n; k++ )
{
x[++nr].s = v[i] + v[j] + v[k];
x[nr].a = v[i];
x[nr].b = v[j];
x[nr].c = v[k];
}
st = 1;
dr = nr;
sort( x + 1, x + 1 + nr, comp );
while ( st < dr )
{
mij = st + ( dr - st ) / 2;
if ( x[st].s + x[dr].s > suma )
dr--;
else
{
if ( x[st].s + x[dr].s < suma )
st++;
else
break;
}
}
if ( x[st].s + x[dr].s != suma )
os << -1;
else
os << x[st].a << ' ' << x[st].b << ' ' << x[st].c << ' ' << x[dr].a << ' ' << x[dr].b << ' ' << x[dr].c;
is.close();
os.close();
return 0;
}