Cod sursa(job #453904)

Utilizator SpiderManSimoiu Robert SpiderMan Data 11 mai 2010 15:38:45
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#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;
}