Cod sursa(job #2735116)

Utilizator davidbejenariu2David Bejenariu davidbejenariu2 Data 1 aprilie 2021 20:21:48
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>

using namespace std;

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

int n, S;
vector <int> v(100);
unordered_map <int, pair <int, pair <int, int>>> mp;

int main()
{
    int i, j, k;

    fin >> n >> S;

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

    fin.close();

    for (i = 0; i < n; ++i)
        for (j = i; j < n; ++j)
            for (k = j; k < n; ++k)
                mp[v[i] + v[j] + v[k]] = make_pair(v[i], make_pair(v[j], v[k]));

    bool found = false;

    for (i = 0; i < n && !found; ++i)
        for (j = i; j < n && !found; ++j)
            for (k = j; k < n && !found; ++k)
            {
                int sum = S - v[i] - v[j] - v[k];

                if (mp.find(sum) != mp.end())
                {
                    fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ' << mp[sum].first << ' '
                         << mp[sum].second.first << ' ' << mp[sum].second.second;

                    found = 1;
                }
            }

    if (!found) fout << -1;
    fout.close();

    return 0;
}