Pagini recente » Cod sursa (job #2374503) | Cod sursa (job #817607) | Cod sursa (job #1205091) | Cod sursa (job #757078) | Cod sursa (job #2612418)
#include<fstream>
#include<unordered_map>
#include<vector>
#define MAX_N 100
using namespace std;
struct elem {
int v1, v2, v3;
};
unordered_map<int, pair<bool, elem>> umap;
vector<int> v;
int n, S;
int main() {
elem e;
int x;
bool ok;
v.reserve(MAX_N + 1);
ifstream fin("loto.in");
ofstream fout("loto.out");
fin >> n >> S;
for(int i = 0; i < n; ++i) {
fin >> x;
v.push_back(x);
}
for(int i = 0; i < n; ++i)
for(int j = 0; j < n; ++j)
for(int k = 0; k < n; ++k) {
e.v1 = v[i];
e.v2 = v[j];
e.v3 = v[k];
umap[v[i] + v[j] + v[k]] = make_pair(true, e);
}
ok = false;
for(int i = 0; i < n && !ok; ++i)
for(int j = 0; j < n && !ok; ++j)
for(int k = 0; k < n && !ok; ++k) {
x = S - (v[i] + v[j] + v[k]);
if(umap[x].first) {
ok = true;
fout << v[i] << " " << v[j] << " " << v[k] << " ";
e = umap[x].second;
fout << e.v1 << " " << e.v2 << " " << e.v3 << "\n";
}
}
if(!ok)
fout << "-1";
fin.close();
fout.close();
return 0;
}