Cod sursa(job #2744855)

Utilizator andreinichitaTirziu Nichita andreinichita Data 25 aprilie 2021 13:21:51
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>
#include <unordered_map>

using namespace std;
unordered_map<int, pair<int, pair<int, int> > > m;
int v[105];

int main() {
    ifstream in("loto.in");
    ofstream out("loto.out");
    int n, s, i, j, k, sum;
    bool ok = 0;
    in >> n >> s;
    for (i = 1; i <= n; i++)
        in >> v[i];
    for (i = 1; i <= n; i++) {
        for (j = 1; j <= n; j++) {
            for (k = 1; k <= n; k++) {
                sum = v[i] + v[j] + v[k];
                if (sum > s)
                    continue;
                if (2 * sum == s) {
                    out << v[i] << " " << v[j] << " " << v[k] << " " << v[i] << " " << v[j] << " " << v[k];
                    ok = 1;
                    break;
                }
                m[sum] = make_pair(i, make_pair(j, k));
                if (m.find(s - sum) != m.end()) {
                    auto p = m[s - sum];
                    out << v[i] << " " << v[j] << " " << v[k] << " " << v[p.first] << " " << v[p.second.first] << " "
                        << v[p.second.second];
                    ok = 1;
                    break;
                }
            }
            if (ok)
                break;
        }
        if (ok)
            break;
    }
    if (!ok)
        out << -1;
    return 0;
}