Cod sursa(job #1474415)

Utilizator depevladVlad Dumitru-Popescu depevlad Data 21 august 2015 22:31:43
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <unordered_map>
#include <tuple>

using namespace std;

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

const int MAX_N_POW3 = 1000000;
const int MAX_N = 100;

int V[MAX_N + 5];
unordered_map < int, tuple < short, short, short > > H;

int main() {
    int n, i, j, k, s, sTemp;

    in >> n >> s;
    for(i = 1; i <= n; i++) in >> V[i];
    for(i = 1; i <= n; i++) {
        for(j = i; j <= n; j++) {
            for(k = j; k <= n; k++) {
                H.insert(make_pair(V[i] + V[j] + V[k], make_tuple(i, j, k)));
            }
        }
    }
    for(i = 1; i <= n; i++) {
        for(j = i; j <= n; j++) {
            for(k = j; k <= n; k++) {
                sTemp = V[i] + V[j] + V[k];
                auto it = H.find(s - sTemp);
                if(it != H.end()) {
                    out << V[i] << " " << V[j] << " " << V[k] << " ";
                    out << V[get<0>(it->second)] << " " << V[get<1>(it->second)] << " " << V[get<2>(it->second)] << "\n";
                    return 0;
                }
            }
        }
    }
    out << "-1\n";
    return 0;
}