Cod sursa(job #2745670)

Utilizator andreea_07Andreea Georgescu andreea_07 Data 26 aprilie 2021 21:21:23
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>
using namespace std;

class trei
{public:
    int x, y, z;

};
unordered_map <int, trei> suma_totala;

int main()
{ifstream fin("loto.in");
ofstream fout("loto.out");
int  N,S,v[101];
int i ,j ,k ,c;
fin >> N >> S;
for(i = 0; i < N; i++)
    fin >>v[i];

for( i = 0; i < N; i++)  //calculam toate combinatiille posibile  
    for(j = i; j < N; j++)
        for( k = j; k < N; k++)
          suma_totala[v[i] + v[j] + v[k]] = {v[i], v[j], v[k]}; 
        
c=0;  //variabila de tip boolean

for(auto i: suma_totala) //parcurgem dictionarul 
    if(suma_totala.find(S-i.first) !=suma_totala.end())// daca este complementarul in dictionar atunci afisam solutia si ne oprim
      {  c = 1; 
         fout << suma_totala[S-i.first].x << " " << suma_totala[S-i.first].y << " " << suma_totala[S-i.first].z << " " << i.second.x << " " << i.second.y << " " << i.second.z;
         break;
        }
    if(c==0) //daca variabila nu se schimba atunci nu avem solutie
        fout << -1;

    return 0;
}