Cod sursa(job #2747717)

Utilizator 6kmeleon6Luca Cordus 6kmeleon6 Data 29 aprilie 2021 16:07:00
Problema Loto Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.48 kb

#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

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

struct sum
{
    bool ok = 0;
    int i, j, k;
};


int main()
{
    int numere[102], N, S, i, j, k, suma, suma_cautata;
    unordered_map <int, sum> sume_perechi; /// Pentru suma X vom atasa o pereche din care rezulta acea suma
    in >> N >> S;
    for (i = 0; i < N; ++i)
    {
        in >> numere[i];
    }

    for (i = 0; i < N; ++i)
    {
        for (j = i; j < N; ++j)
        {
            for (k = j; k < N; ++k)
            {
                suma = numere[i] + numere[j] + numere[k];
                sume_perechi[suma].i = numere[i];
                sume_perechi[suma].j = numere[j];
                sume_perechi[suma].k = numere[k];
                sume_perechi[suma].ok = 1;
            }
        }
    }
    for (i = 0; i < N; ++i)
    {
        for (j = i; j < N; ++j)
        {
            for (k = j; k < N; ++k)
            {
                suma_cautata = S - numere[i] - numere[j] - numere[k];
                if (sume_perechi[suma_cautata].ok)
                {
                    out << numere[i] << " " << numere[j] << " " << numere[k] << " ";
                    out << sume_perechi[suma_cautata].i << " " << sume_perechi[suma_cautata].j << " " << sume_perechi[suma_cautata].k;
                    return 0;
                }
            }
        }
    }
    out << "-1";
    return 0;
}