Cod sursa(job #2911298)

Utilizator Mihai_999Diaconeasa Mihai Mihai_999 Data 28 iunie 2022 14:42:32
Problema Loto Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#define nl '\n'

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

int n, s, a[110], ksp;
long long int sp[1001000];
struct ind
{
    int ind1, ind2, ind3;
};
unordered_map<int, ind> x;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    fin >> n >> s;
    for (int i = 1; i <= n; i++)
        fin >> a[i];
    for (int i = 1; i <= n; i++)
        for (int j = i; j <= n; j++)
            for (int k = j; k <= n; k++)
            {
                if (a[i]+a[j]+a[k] <= s && x.find(a[i]+a[j]+a[k]) == x.end())
                {
                    ind y;
                    y.ind1 = i;
                    y.ind2 = j;
                    y.ind3 = k;
                    x[a[i]+a[j]+a[k]] = y;
                    sp[++ksp] = a[i]+a[j]+a[k];
                }
            }
    for (int i = 1; i <= ksp; i++)
    {
        if (x.find(s-sp[i]) != x.end())
        {
            ind f = x[sp[i]], g = x[s-sp[i]];
            fout << a[f.ind1] << ' ' << a[f.ind2] << ' ' << a[f.ind3] << ' ' << a[g.ind1] << ' ' << a[g.ind2] << ' ' << a[g.ind3];
            return 0;
        }
    }
    fout << -1;
    return 0;
}