Cod sursa(job #2746395)

Utilizator DenisTroacaDenis Troaca DenisTroaca Data 27 aprilie 2021 19:30:58
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
#include <unordered_map>
#include <string>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, aux, s, i, j, k, v[101], index;
unordered_map<int, int> umap;
int main()
{
    fin >> n >> s;
    for (i = 1; i <= n; i++)
        fin >> v[i];
    sort(v, v + n);
    for (i = 1; i <= n; i++)
    {
        if (v[i] <= s / 6)
            index = i;
        else
            break;
    }
    for (i = 1; i <= index+7; i++)
    {
        for (j = i; j <= index+7; j++)
        {
            for (k = j; k <= index+7; k++)
            {
                aux = v[i] + v[j] + v[k];
                umap[aux] = k + j * 1000 + i * 1000000;
            }
        }
    }
    for (i = index-7; i <= n; i++)
    {
        for (j = i; j <= n; j++)
        {
            for (k = j; k <= n; k++)
            {
                aux = v[i] + v[j] + v[k];
                if (umap[s - aux] != 0)
                {
                    fout << v[i] << " " << v[j] << " " << v[k] << " " << v[umap[s - aux] % 1000] << " " << v[umap[s - aux] / 1000 % 1000] << " " << v[umap[s - aux] / 1000000];
                    return 0;
                }
            }
        }
    }

    fout << -1;
    return 0;
}