Cod sursa(job #2725244)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 18 martie 2021 16:48:02
Problema Loto Scor 75
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.47 kb
#include <iostream>
#include <fstream>
#include <unordered_set>

using namespace std;

int v[101];

int main()
{
    ifstream in("loto.in");
    ofstream out("loto.out");
    int n, s;
    in >> n >> s;
    for(int i = 1; i <= n; i++)
        in >> v[i];
    unordered_set<int> sums;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            for(int k = 1; k <= n; k++)
                sums.insert(v[i] + v[j] + v[k]);

    bool ok = 0;
    int solA, solB, solC;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            for(int k = 1; k <= n; k++)
            {
                int sumLeft = s - v[i] - v[j] - v[k];
                if(sums.find(sumLeft) != sums.end())
                {
                    ok = 1;
                    solA = v[i];
                    solB = v[j];
                    solC = v[k];

                }
            }

    if(ok == 0)
        out << -1;
    else
    {
        out << solA << " " << solB << " " << solC << " ";
        int solD, solE, solF;
        for(int i = 1; i <= n; i++)
            for(int j = 1; j <= n; j++)
                for(int k = 1; k <= n; k++)
                    if(v[i] + v[j] + v[k] == s - solA - solB - solC)
                    {
                        solD = v[i];
                        solE = v[j];
                        solF = v[k];
                    }
        out << solD << " " << solE << " " << solF;
    }
    return 0;
}