Cod sursa(job #1303892)

Utilizator Corina1997Todoran Ana-Corina Corina1997 Data 28 decembrie 2014 15:01:31
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
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;
bool ok;
jum x[400000];
int v[102];

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;
    ok = false;
    while ( st < dr && ok == false )
    {
        mij = st + ( dr - st ) / 2;
        if ( x[st].s + x[dr].s > suma )
            dr--;
        if ( x[st].s + x[dr].s < suma )
            st++;
        if ( x[st].s + x[dr].s == suma )
            ok = true;
    }
    if ( ok == true )
        os << x[st].a << ' ' << x[st].b << ' ' << x[st].c << ' ' << x[dr].a << ' ' << x[dr].b << ' ' << x[dr].c;
    else
        os << -1;
    is.close();
    os.close();
    return 0;
}