Cod sursa(job #2612446)

Utilizator Horia14Horia Banciu Horia14 Data 8 mai 2020 23:55:13
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<cstdio>
#include<algorithm>
#include<unordered_map>
#define MAX_N 100
using namespace std;

struct elem {
    int v1, v2, v3;
    elem(int v1 = 0, int v2 = 0, int v3 = 0): v1(v1), v2(v2), v3(v3) {

    }
};

unordered_map<int, elem> umap;
int v[MAX_N];
int n, S;

int main() {
    FILE* fin, *fout;
    fin = fopen("loto.in", "r");
    fout = fopen("loto.out", "w");
    elem e;
    int x, s;
    fscanf(fin,"%d%d", &n, &S);
    for(int i = 0; i < n; ++i)
        fscanf(fin,"%d", &v[i]);

    for(int i = 0; i < n; ++i)
        for(int j = i; j < n; ++j)
            for(int k = j; k < n; ++k) {
                s = v[i] + v[j] + v[k];
                if(umap.find(x) == umap.end()) {
                    umap[s] = elem(v[i], v[j], v[k]);
                }
                x = S - v[i] - v[j] - v[k];
                if(umap.find(x) != umap.end()) {
                    fprintf(fout,"%d %d %d %d %d %d\n", v[i], v[j], v[k], umap[x].v1, umap[x].v2, umap[x].v3);
                    fclose(fin);
                    fclose(fout);
                    return 0;
                }
            }

    fprintf(fout,"-1\n");
    fclose(fin);
    fclose(fout);
    return 0;
}