Pagini recente » Cod sursa (job #1205336) | Cod sursa (job #119563) | Cod sursa (job #1258096) | Cod sursa (job #215762) | Cod sursa (job #2894335)
#include <fstream>
#include <unordered_map>
#include <tuple>
#include <vector>
#include <algorithm>
int main() {
std::unordered_map<int, std::tuple<int, int, int>> posibilitati;
std::ifstream fin("loto.in");
std::vector<int> loterie;
int n, s, x, sum;
bool gasit_solutie = false;
fin >> n >> s;
for (int i = 0; i < n; i++) {
fin >> x;
loterie.push_back(x);
}
std::ofstream fout("loto.out");
for (int i = 0; i < loterie.size(); i++) {
for (int j = i; j < loterie.size(); j++) {
for (int k = j; k < loterie.size(); k++) {
sum = loterie[i] + loterie[j] + loterie[k];
if (sum < s)
posibilitati[sum] = {i, j, k};
if (posibilitati.find(s - sum) != posibilitati.end()) {
fout << loterie[i] << " " << loterie[j] << " " << loterie[k] << " "
<< loterie[get<0>(posibilitati[s - sum])]
<< " " << loterie[get<1>(posibilitati[s - sum])] << " "
<< loterie[get<2>(posibilitati[s - sum])];
gasit_solutie = true;
break;
}
if (gasit_solutie)
break;
}
}
if (gasit_solutie)
break;
}
if (!gasit_solutie)
fout << -1;
return 0;
}