Cod sursa(job #2274237)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 1 noiembrie 2018 16:11:11
Problema Loto Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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

long long v[105];

unordered_map <long long, short > mp;
unordered_map <long long, vector<int> > indici;

int main()
{
    long long n, s;
    fin >> n >> s;

    for(int i = 1; i <= n; ++i)
        fin >> v[i];

    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            for(int k = 1; k <= n; ++k){
                mp[v[i] + v[j] + v[k]]++;
                indici[v[i] + v[j] + v[k]].push_back(i);
                indici[v[i] + v[j] + v[k]].push_back(j);
                indici[v[i] + v[j] + v[k]].push_back(k);
            }

    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= n; ++j)
            for(int k = 1; k <= n; ++k){
                long long val = v[i] + v[j] + v[k];
                long long need = s - val;
                if(mp.find(need) != mp.end())
                    {
                        fout << v[indici[need][0]] << ' ' << v[indici[need][1]] << ' ' << v[indici[need][2]] << ' ' << v[i] << ' ' << v[j] << ' '<< v[k] << '\n';
                        return 0;
                    }
            }
    fout << -1 << '\n';
    return 0;
}