Pagini recente » Cod sursa (job #3293372) | Cod sursa (job #1695746) | Cod sursa (job #1112752) | Cod sursa (job #1205053) | Cod sursa (job #2894350)
#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");
int loterie[101];
int n, s, sum;
bool gasit_solutie = false;
fin >> n >> s;
for (int i = 0; i < n; i++)
fin >> loterie[i];
std::ofstream fout("loto.out");
for (auto i = 0; i < n; i++) {
for (auto j = i; j < n; j++) {
for (auto k = j; k < n; 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[std::get<0>(posibilitati[s - sum])]
<< " " << loterie[std::get<1>(posibilitati[s - sum])] << " "
<< loterie[std::get<2>(posibilitati[s - sum])];
gasit_solutie = true;
}
if (gasit_solutie)
break;
}
if (gasit_solutie)
break;
}
if (gasit_solutie)
break;
}
if (!gasit_solutie)
fout << -1;
return 0;
}