Cod sursa(job #2895489)

Utilizator fredtuxFlorin Dinu fredtux Data 29 aprilie 2022 09:33:22
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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


int main() {
    int n, s, i, j, k, x;
    unordered_map<int, vector<int>> sum;
    vector<int> v;
    vector<int> tmp(3);

    fin >> n >> s;
    for (i = 0; i < n; ++i) {
        fin >> k;
        v.push_back(k);
    }

    for (i = 0; i < n; ++i) {
        for (j = i; j < n; ++j) {
            for (k = j; k < n; ++k) {
                x = v[i] + v[j] + v[k];

                if (sum.find(s - x) != sum.end()) {
                    fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
                    for (i = 0; i < 3; ++i) {
                        fout << sum[s - x][i] << ' ';
                    }

                    return 0;
                }

                tmp[0] = v[i];
                tmp[1] = v[j];
                tmp[2] = v[k];

                sum[x] = tmp;
            }
        }
    }

    // Hack
    if (sum.find(s - x) != sum.end()) {
        fout << v[i - 1] << ' ' << v[j - 1] << ' ' << v[k - 1] << ' ';
        for (i = 0; i < 3; ++i) {
            fout << sum[s - x][i] << ' ';
        }

        return 0;
    }

    fout << "-1";

    return 0;
}