Cod sursa(job #2746339)

Utilizator Costin_PintilieHoratiu-Costin-Petru Pintilie Costin_Pintilie Data 27 aprilie 2021 18:34:34
Problema Loto Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,i,j,k,x,curr_sum;
vector<int> nbrs;
unordered_map<int, vector<int> > Hashm;
int main(){
    fin>>n>>s;
    for(int i = 0; i < n; i++){
        fin>>x;
        nbrs.push_back(x);
    }
     for(i=0;i<nbrs.size();++i){
        for(j=i;j<nbrs.size();++j){
            for(k=j;k<nbrs.size();++k){  //backtracking pt toate combinatiile de n numere
                    curr_sum = nbrs[i] + nbrs[j] + nbrs[k];  //adunam combinatia curenta
                    Hashm[curr_sum] = {nbrs[i],nbrs[j],nbrs[k]};  //si punem in hash numerele corespunzatoare combinatiei curente

              if(Hashm.find(s-curr_sum) != Hashm.end()){ //daca gasim complementara sumei curente in hash
                fout<<nbrs[i]<<" "<<nbrs[j]<<" "<<nbrs[k]<<" "<<Hashm[s-curr_sum][0]<<" "<<Hashm[s-curr_sum][1]<<" "<<Hashm[s-curr_sum][2];
                return 0; //una dintre soluii a fost gasita deci putem iesi din main
              }
            }
        }
     }

    fout<<-1; // nu au fost gasite solutii deci este afisai -1
fin.close();
fout.close();
return 0;
}