Cod sursa(job #987348)

Utilizator manutrutaEmanuel Truta manutruta Data 20 august 2013 14:59:17
Problema Loto Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.45 kb
# include <iostream>
# include <fstream>
# include <vector>
# include <algorithm>
using namespace std;

# define MAXN 103
# define MOD 666013

ifstream f("loto.in");
ofstream g("loto.out");

int n, s;
int a[MAXN];
vector<int> hassh[MOD];

void addHash(int x) {
    int aux = x % MOD;
    hassh[aux].push_back(x);
}

bool getHash(int x) {
    bool ok = false;
    int aux = x % MOD;
    for (int i = 0; i < hassh[aux].size(); i++) {
        if (hassh[aux][i] == x) {
            ok = true;
            break;
        }
    }
    return ok;
}

int main()
{
    f >> n >> s;
    for (int i = 1; i <= n; i++) {
        f >> a[i];
        addHash(a[i]);
    }

    sort(a + 1, a + n + 1);

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            for (int k = 1; k <= n; k++) {
                for (int l = 1; l <= n; l++) {
                    for (int m = 1; m <= n; m++) {
                        int aux = s - a[i] - a[j] - a[k] - a[l] - a[m];
                        if (aux > 0) {
                            if (getHash(aux) == true) {
                                g << a[i] << ' ' << a[j] << ' ' << a[k] << ' ';
                                g << a[l] << ' ' << a[m] << ' ' << aux;
                                return 0;
                            }
                        }
                    }
                }
            }
        }
    }
    g << -1;

    return 0;
}