Cod sursa(job #2274244)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 1 noiembrie 2018 16:16:20
Problema Loto Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 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, vector<int>  > mp;

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)
            {
                if(mp.find(v[i] + v[j] + v[k]) == mp.end())
                {
                    mp[v[i] + v[j] + v[k]].push_back(i);
                    mp[v[i] + v[j] + v[k]].push_back(j);
                    mp[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(need >= 0 && mp.find(need) != mp.end())
                {
                    fout << v[mp[need][0]] << ' ' << v[mp[need][1]] << ' ' << v[mp[need][2]] << ' ' << v[i] << ' ' << v[j] << ' '<< v[k] << '\n';
                    return 0;
                }
            }
    fout << -1 << '\n';
    return 0;
}