Cod sursa(job #2741017)

Utilizator XeinIonel-Alexandru Culea Xein Data 15 aprilie 2021 11:06:15
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <unordered_map>

std::ifstream f("loto.in");
std::ofstream g("loto.out");
std::unordered_map<int, int> Sum2;
int S, N, Numere[100];

bool verif()
{
    for(auto it1 = Sum2.begin(); it1 != Sum2.end(); ++it1)
        for(auto it2 = it1; it2 != Sum2.end(); ++it2)
        {
            int Aux = S - it1->first - it2->first;
            if(Sum2.find(Aux) != Sum2.end())
            {
                g << it1->second << ' ' << it1->first - it1->second;
                g << ' ' << it2->second << ' ' << it2->first - it2->second;
                g << ' ' << Sum2[Aux] << ' ' << Aux - Sum2[Aux];
                return true;
            }
        }
    return false;
}

int main()
{
    f >> N >> S;
    for(int i = 0; i < N; ++i)
    {
        f >> Numere[i];
        for(int j = i; j > -1; --j)
            if(Numere[i] + Numere[j] <= S)
                Sum2[Numere[i] + Numere[j]] = Numere[i];
    }
    if(!verif())
        g << -1;

    return 0;
}