Cod sursa(job #2282854)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 14 noiembrie 2018 16:51:33
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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

int v[105];

struct ceva{
    int v[3];
};

unordered_map <int, ceva > mp;

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

    fout << -1 << '\n';
    return 0;
}