Cod sursa(job #3131693)

Utilizator AlexCRCAlexandru-Emilian Craciun AlexCRC Data 21 mai 2023 08:55:31
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
#include <iostream>
#include <unordered_map>
#include <vector>

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

int n, v[101];
long s;
bool found;
std::unordered_map<int, int[3]> map;

void afisare_rezultat(int i, int j, int k)
{
    out << v[i] << ' ';
    out << v[j] << ' ';
    out << v[k] << ' ';
    out << map[s - (v[i] + v[j] + v[k])][0] << ' ';
    out << map[s - (v[i] + v[j] + v[k])][1] << ' ';
    out << map[s - (v[i] + v[j] + v[k])][2] << ' ';
}

int main()
{
    in >> n >> s;
    for (int i = 1; i <= n; i++)
        in >> v[i];

    found = false;
    for (int i = 1; i <= n - 2 && found == false; i++)
        for (int j = i + 1; j <= n - 1 && found == false; j++)
            for (int k = j + 1; k <= n && found == false; k++)
            {
                map[v[i] + v[j] + v[k]][0] = v[i];
                map[v[i] + v[j] + v[k]][1] = v[j];
                map[v[i] + v[j] + v[k]][2] = v[k];
                if (map.find(s - (v[i] + v[j] + v[k])) != map.end())
                {
                    found = true;
                    afisare_rezultat(i, j, k);
                }
            }

    if (found == false)
        out << "-1";

    return 0;
}