Cod sursa(job #1276371)

Utilizator LizzardStanbeca Theodor-Ionut Lizzard Data 26 noiembrie 2014 11:32:02
Problema Loto Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <fstream>
#include <map>
#define _NMAX 101
using namespace std;

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

struct subset {
    int a, b, c;
    subset() {}
    subset ( int x, int y, int z ) {
        a = x;
        b = y;
        c = z;
    }
};

int main() {
    int n, s, x;
    int v[_NMAX];
    map <int, subset> myMap;
    fin >> n >> s;
    
    for ( int i = 0; i < n; i++ )
        fin >> v[i];
        
    for ( int i = 0; i < n; i++ )
        for ( int j = i; j < n; j++ )
            for ( int k = j; k < n; k++ )
                myMap[v[i] + v[j] + v[k]] = *new subset ( v[i], v[j], v[k] );
                
    map<int, subset>::iterator find;
    
    for ( int i = 0; i < n; i++ )
        for ( int j = i; j < n; j++ )
            for ( int k = j; k < n; k++ ) {
                find = myMap.find ( s - v[i] - v[j] - v[k] );
                
                if ( find != myMap.end() ) {
                    fout << v[i] << " " << v[j] << " " << v[k] << " " << ( find->second ).a << " " << ( find->second ).b << " " << ( find->second ).c;
                    return 0;
                }
            }
            
    fout << -1;
    return 0;
}