Cod sursa(job #2659319)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 16 octombrie 2020 16:21:28
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>
#include <unordered_map>

using namespace std;

const int NMAX = 100;
int v[1 + NMAX];

/*
struct index
{
    int a;
    int b;
    int c;

    index(int a, int b, int c)
    {
        this->a = a;
        this->b = b;
        this->c = c;
    }
};
*/

//unordered_map<int, index> hm;
unordered_map<int, pair<int, pair<int, int>>> hm;

int main()
{
    ifstream in("loto.in");
    ofstream out("loto.out");
    int n, s;

    in >> n >> s;
    for (int i = 1; i <= n; i++)
    {
        in >> v[i];
    }

    for (int i = 1; i <= n; i++)
    {
        for (int j = i; j <= n; j++)
        {
            for (int k = j; k <= n; k++)
            {
                int sum = v[i] + v[j] + v[k];

                hm.emplace(sum, make_pair(i, make_pair(j, k)));

                if (hm.find(s - sum) != hm.end())
                {
                    out << v[hm[s - sum].first] << ' ' << v[hm[s - sum].second.first] << ' ' << v[hm[s - sum].second.second] << ' ' << v[i] << ' ' << v[j] << ' ' << v[k] << '\n';
                    return 0;
                }
            }
        }
    }

    out << -1 << '\n';

    return 0;
}