Cod sursa(job #2760716)

Utilizator MadalinaKopaczMadalina Kopacz MadalinaKopacz Data 28 iunie 2021 20:15:16
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");

vector <int>  triplet(3);
unordered_map <int, vector < int > > map;
int a[105];
int N, S;

void Citire()
{
	fin >> N >> S;
	for (int i = 0; i < N; ++i) fin >> a[i];
}

void Rezolvare()
{
    //j = i si k = j pt ca numerele nu sunt dist
    for (int i = 0; i < N; ++i)
        for (int j = i; j < N; ++j)    
            for (int k = j; k < N; ++k)
            {
                //un triplet posibil
                vector <int> tr(3);
                tr[0] = a[i];
                tr[1] = a[j]; 
                tr[2] = a[k];   

                //suma partiala obt cu 3 din 6 numere
                int s = tr[0] + tr[1] + tr[2];
                //o salvam
                map[s] = tr;

                //daca avem triplet care sa completeze suma s pana la S afisam
                if (map.find(S - s) != map.end())   
                {
                    fout << map[s][0] << ' ' << map[s][1] << ' ' << map[s][1] << ' ';  
                    fout << map[S - s][0] << ' ' << map[S - s][1] << ' ' << map[S - s][2];  
                    return;
                }
            }
    //nu am gasit suma
    fout << -1;
}

int main()
{
    Citire();
    Rezolvare();
}