Pagini recente » Cod sursa (job #428198) | Cod sursa (job #588369) | Cod sursa (job #185479) | Cod sursa (job #2930756) | Cod sursa (job #2622723)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
unordered_map<int, int*> map;
int v[100];
int main() {
int n, s;
in >> n >> s;
for (int i = 0; i < n; i++) {
in >> v[i];
}
bool ok = 0;
for (int i = 0; i < n && !ok; i++) {
for (int j = i; j < n && !ok; j++) {
for (int k = j; k < n && !ok; k++) {
int curr = v[i] + v[j] + v[k];
// verificam daca avem complementul in tabel
int* comp = map[s - curr];
if (comp) {
out << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
out << comp[0] << ' ' << comp[1] << ' ' << comp[2] << ' ';
ok = 1;
}
// daca nu, adaugam suma in hash
else if(!map[curr]) {
int* val_curr = new int[3];
val_curr[0] = v[i];
val_curr[1] = v[j];
val_curr[2] = v[k];
map[curr] = val_curr;
}
}
}
}
if (!ok) out << -1;
return 0;
}