Cod sursa(job #2612409)

Utilizator Horia14Horia Banciu Horia14 Data 8 mai 2020 22:52:55
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.45 kb
#include<fstream>
#include<unordered_map>
#include<vector>
#define MAX_N 100
using namespace std;

unordered_map<int, bool> umap;
vector<int> v;
int n, S;

int main() {
    int x;
    bool ok, ok2;
    v.reserve(MAX_N + 1);
    ifstream fin("loto.in");
    ofstream fout("loto.out");
    fin >> n >> S;
    for(int i = 0; i < n; ++i) {
        fin >> x;
        v.push_back(x);
    }

    for(int i = 0; i < n; ++i)
        for(int j = 0; j < n; ++j)
            for(int k = 0; k < n; ++k)
                umap[v[i] + v[j] + v[k]] = true;

    ok = false;
    for(int i = 0; i < n && !ok; ++i)
        for(int j = 0; j < n && !ok; ++j)
            for(int k = 0; k < n && !ok; ++k) {
                x = S - (v[i] + v[j] + v[k]);
                if(umap[x]) {
                    ok = true;
                    fout << v[i] << " " << v[j] << " " << v[k] << " ";
                    ok2 = false;
                    for(int ii = 0; ii < n && !ok2; ++ii)
                        for(int jj = 0; jj < n && !ok2; ++jj)
                            for(int kk = 0; kk < n && !ok2; ++kk)
                                if(v[ii] + v[jj] + v[kk] == x) {
                                    ok2 = true;
                                    fout << v[ii] << " " << v[jj] << " " << v[kk];
                                    fout << "\n";
                                }
                }
            }

    if(!ok)
        fout << "-1";

    fin.close();
    fout.close();
    return 0;
}