Cod sursa(job #1452928)

Utilizator DysKodeTurturica Razvan DysKode Data 22 iunie 2015 12:46:59
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <unordered_map>

#define f first
#define s second

using namespace std;

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

int v[100],i,j,n,sum,k;
bool ans = false;
unordered_map <int, pair< pair<int,int> , pair<int,int> > > myMap;
pair< pair<int,int> , pair<int,int> > t;

int main()
{
    fin>>n>>sum;
    for( i = 1 ; i <= n ; ++i )
    {
        fin>>v[ i ];
    }

    for( i = 1 ; i <= n ; ++i )
        for( j = 1 ; j <= n ; ++j )
            for( k = 1 ; k <= n ; ++k )
                myMap[ sum - v[ i ] - v[ j ] - v[ k ] ] = make_pair( make_pair( v[ i ] + v[ j ] + v[ k ] , i ) , make_pair( j , k ) );

    for( i = 1 ; i <= n && !ans ; ++i )
        for( j = 1 ; j <= n && !ans ; ++j )
            for( k = 1 ; k <= n && !ans ; ++k )
            {
                if( myMap[ v[ i ] + v[ j ] + v[ k ] ].f.f == sum - v[ i ] - v[ j ] - v[ k ] )
                {
                    t = myMap[ v[ i ] + v[ j ] + v[ k ] ];
                    fout<<v[ i ]<<' '<<v[ j ]<<' '<<v[ k ]<<' '<<v[ t.f.s ]<<' '<<v[ t.s.f ]<<' '<<v[ t.s.s ];
                    ans = true;
                }
            }

    if( !ans )
        fout<<"-1";


return 0;
}