Pagini recente » Cod sursa (job #1205268) | Cod sursa (job #1341778) | Cod sursa (job #1333851) | Cod sursa (job #1445776) | Cod sursa (job #2745670)
#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;
}