Cod sursa(job #2396552)

Utilizator LittleWhoFeraru Mihail LittleWho Data 3 aprilie 2019 16:50:38
Problema Loto Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;
typedef signed long long ll;
typedef unsigned int uint;
typedef unsigned short ushort;
typedef unsigned char uchar;
const int nmax = 101;
int v[nmax];

struct elem {
    bool ok;
    int a, b, c;
};
unordered_map<ll, elem> M;

int main() {
    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);

    int n, S;
    scanf("%d %d", &n, &S);
    for (int i = 0; i < n; i++) scanf("%d", &v[i]);

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            for (int k = 0; k < n; k++) {
                int tmp = v[i] + v[j] + v[k];
                M[tmp].ok = true;
                M[tmp].a = v[i];
                M[tmp].b = v[j];
                M[tmp].c = v[k];
            }
        }
    }

    int tmp;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            for (int k = 0; k < n; k++) {
                tmp = S - (v[i] + v[j] + v[k]);
                if (M[tmp].ok) {
                    cout << v[i] << " " << v[j] << " " << v[k] << " " << M[tmp].a << " " << M[tmp].b << " " << M[tmp].c << "\n";
                    return 0;
                }
            }
        }
    }

    cout << "-1\n";

    return 0;
}