Pagini recente » Cod sursa (job #1667025) | Cod sursa (job #623576) | Cod sursa (job #2584544) | Cod sursa (job #746750) | Cod sursa (job #453904)
Cod sursa(job #453904)
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX = 200005;
const int N_MAX = 105;
const char FIN[]= "loto.in";
const char FOU[]= "loto.out";
int N, S;
int V[N_MAX];
struct vec
{
int suma, x1, x2, x3;
};
vec X[MAX];
bool operator <(const vec &a, const vec &b)
{
return a.suma < b.suma;
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOU,"w",stdout);
scanf("%d %d", &N, &S);
for ( int i = 0; i < N; ++i )
scanf("%d", &V[i]);
int l = 0;
for ( int i = 0; i < N; ++i )
for ( int j = i; j < N; ++j )
for ( int k = j; k < N; ++k )
{
X[l].suma = V[i] + V[j] + V[k];
X[l].x1 = V[i];
X[l].x2 = V[j];
X[l++].x3 = V[k];
}
sort(X, X + l);
int z;
for (int i = 0, j = l - 1; i <= j; (z < S ? ++i : --j))
if ( (z = X[i].suma + X[j].suma) == S )
{
printf("%d %d %d %d %d %d\n", X[j].x1, X[j].x2, X[j].x3, X[i].x1, X[i].x2, X[i].x3);
return 0;
}
printf("-1");
return 0;
}