Cod sursa(job #2894408)

Utilizator dfettiDaniel Fetti dfetti Data 27 aprilie 2022 19:56:17
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#include <unordered_map>
#include <stack>
using namespace std;

#define MAX_N 100

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

struct triple 
{
    int x;
    int y;
    int z;
};

int N, S;
int A[MAX_N];
unordered_map<int, triple> M;

int main()
{
    fin >> N >> S;
    for (int i = 0; i < N; ++i)
            fin >> A[i];

    for (int i = 0; i < N; ++i)
        for (int j = 0; j < N; ++j)
            for (int k = 0; k < N; ++k)
            {
                int part = A[i] + A[j] + A[k];
                if (!M.count(part))
                {
                    M[part] = triple{ A[i], A[j], A[k] };
                }
                else
                    continue;

                int rest = S - part;
                if (M.count(rest))
                {
                    fout << M[part].x << ' '
                        << M[part].y << ' '
                        << M[part].z << ' '
                        << M[rest].x << ' '
                        << M[rest].y << ' '
                        << M[rest].z << ' ';
                    return 0;
                }
            }

    fout << "-1";

    return 0;
}