Cod sursa(job #40734)

Utilizator DastasIonescu Vlad Dastas Data 27 martie 2007 18:10:12
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("loto.in");
ofstream out("loto.out");

int n, s;
int a[100];

struct sume
{
    int val;
    int nr1, nr2, nr3;
};

int main()
{
    in >> n >> s;
    sume *v = new sume[n*n*n];

    for ( int i = 0; i < n; ++i )
        in >> a[i];

    int p = 0;
    for ( int i = 0; i < n; ++i )
        for ( int j = i; j < n; ++j )
            for ( int k = i; k < n; ++k )
            {
                v[p].val = a[i] + a[j] + a[k];
                v[p].nr1 = a[i];
                v[p].nr2 = a[j];
                v[p].nr3 = a[k];
                ++p;
            }

    for ( int i = 0; i < p - 1; ++i )
        for ( int j = i+1; j < p; ++j )
            if ( v[i].val > v[j].val )
            {
                sume t = v[i];
                v[i] = v[j];
                v[j] = t;
            }

    int sta = 0, sto = p-1;

    while ( sta <= sto )
    {
        int q = v[sto].val + v[sta].val;
        if ( q == s )
        {
            out << v[sto].nr1 << " " << v[sto].nr2 << " " << v[sto].nr3
                << " " << v[sta].nr1 << " " << v[sta].nr2 << " " << v[sta].nr3;
            return 0;
        }
        else if ( q < s )
            ++sta;
        else
            --sto;
    }

    out << -1 << endl;

    return 0;
}