Nu aveti permisiuni pentru a descarca fisierul grader_test3.ok
Cod sursa(job #2892177)
| Utilizator | Data | 21 aprilie 2022 00:23:21 | |
|---|---|---|---|
| Problema | Loto | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 1.47 kb |
#include <fstream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
unordered_map <int, pair<int, int>> sume;
vector <int> rez(6);
int nrBile, sum, i, j, k, sumacurenta, elem1, elem2, bile[101];
pair <int, int> haide;
int main()
{
fin >> nrBile >> sum;
for (i = 0; i < nrBile; i++)
fin >> bile[i];
for (i = 0; i< nrBile; i++)
for (j = i; j < nrBile; j++)
{
haide = make_pair(bile[i], bile[j]);
for (k = j; k < nrBile; k++)
sume[bile[i]+bile[j]+bile[k]] = haide;
}
for (i = 0; i< nrBile; i++)
for (j = i; j < nrBile; j++)
for (k = j; k < nrBile; k++)
if (sume.count(sum-bile[i]-bile[j]-bile[k]))
{
sumacurenta = sum-bile[i]-bile[j]-bile[k];
elem1 = sume[sumacurenta].first;
elem2 = sume[sumacurenta].second;
rez[0] = bile[i];
rez[1] = bile[j];
rez[2] = bile[k];
rez[3] = elem1;
rez[4] = elem2;
rez[5] = sumacurenta - elem1-elem2;
sort(rez.begin(), rez.end());
for (auto m: rez )
fout << m << ' ';
return 0;
}
fout << -1;
return 0;
}
