Pagini recente » Cod sursa (job #2592797) | Cod sursa (job #18092) | Cod sursa (job #841610) | Cod sursa (job #125447) | Cod sursa (job #1140902)
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
struct Sum {
size_t i1,i2,i3;
Sum() {}
Sum(size_t _i1, size_t _i2, size_t _i3) {
i1 = _i1;
i2 = _i2;
i3 = _i3;
}
};
unordered_map <unsigned, Sum> sumMap;
int main() {
ifstream in("loto.in");
size_t n;
unsigned s;
in >> n >> s;
vector<unsigned> v(n);
for(size_t i = 0; i < n; ++i) {
in >> v[i];
}
for(size_t i = 0; i < n; ++i)
for(size_t j = 0; j < n; ++j)
for(size_t k = 0; k < n; ++k)
sumMap[v[i]+v[j]+v[k]] = Sum(i,j,k);
ofstream out("loto.out");
bool hasSol = false;
for(auto i = sumMap.begin(); i != sumMap.end(); ++i) {
int remS = s-i->first;
if(sumMap.count(remS)) {
out << v[i->second.i1] << ' ' << v[i->second.i2] << ' ' << v[i->second.i3] << ' ';
Sum t = sumMap[remS];
out << v[t.i1] << ' ' << v[t.i2] << ' ' << v[t.i3] << '\n';
hasSol = true;
break;
}
}
if(!hasSol) out << -1 << '\n';
}