Cod sursa(job #1140902)

Utilizator alexandru70Ungurianu Alexandru alexandru70 Data 12 martie 2014 12:56:04
Problema Loto Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <vector>
#include <unordered_map>

using namespace std;

struct Sum {
    size_t i1,i2,i3;
    Sum() {}
    Sum(size_t _i1, size_t _i2, size_t _i3) {
        i1 = _i1;
        i2 = _i2;
        i3 = _i3;
    }
};

unordered_map <unsigned, Sum> sumMap;

int main() {
    ifstream in("loto.in");
    size_t n;
    unsigned s;
    in >> n >> s;
    vector<unsigned> v(n);
    for(size_t i = 0; i < n; ++i) {
        in >> v[i];
    }

    for(size_t i = 0; i < n; ++i)
        for(size_t j = 0; j < n; ++j)
            for(size_t k = 0; k < n; ++k)
                sumMap[v[i]+v[j]+v[k]] = Sum(i,j,k);

    ofstream out("loto.out");

    bool hasSol = false;

    for(auto i = sumMap.begin(); i != sumMap.end(); ++i) {
        int remS = s-i->first;
        if(sumMap.count(remS)) {
            out << v[i->second.i1] << ' ' << v[i->second.i2] << ' ' << v[i->second.i3] << ' ';
            Sum t = sumMap[remS];
            out << v[t.i1] << ' ' << v[t.i2] << ' ' << v[t.i3] << '\n';
            hasSol = true;
            break;
        }
    }
    if(!hasSol) out << -1 << '\n';

}