Cod sursa(job #3342412)

Utilizator M132M132 M132 M132 Data 24 februarie 2026 09:37:24
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("loto.in");
ofstream g("loto.out");

int v[101];
int n, sum;
unordered_map<int, int> s_map;

int remember(int a, int b, int c)
{
    return a * 1000000 + b * 1000 + c;
}

void desfac(int code, int& a, int& b, int& c)
{
    c = code % 1000;
    b = (code / 1000) % 1000;
    a = code / 1000000;
}

int main()
{
    f >> n >> sum;
    for (int i = 1; i <= n; ++i)
        f >> v[i];
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            for (int k = 1; k <= n; ++k)
            {
                int s = v[i] + v[j] + v[k];
                int nr = remember(i, j, k);
                s_map[s] = nr;
            }
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            for (int k = 1; k <= n; ++k)
            {
                int s = v[i] + v[j] + v[k];
                int rest = sum - s;

                if (s_map.find(rest) != s_map.end()) {
                    int nr = s_map[rest];
                    int a, b, c;
                    desfac(nr, a, b, c);
                    g << v[i] << " " << v[j] << " " << v[k] << " ";
                    g << v[a] << " " << v[b] << " " << v[c] << "\n";
                    return 0;
                }
            }

    g << "-1";
    return 0;
}