Pagini recente » Cod sursa (job #1551655) | Cod sursa (job #2398343) | Cod sursa (job #2664405) | Cod sursa (job #136181) | Cod sursa (job #3128765)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
std::ifstream f("loto.in");
std::ofstream g("loto.out");
std::unordered_map<long long, std::pair<long long,std::vector<int>>> map;
std::vector<int> v;
int n;
long long target;
bool found = false;
void solution() {
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
for(int k=j;k<n;k++) {
std::vector<int> temp;
temp.push_back(v[i]);
temp.push_back(v[j]);
temp.push_back(v[k]);
map[v[i]+v[j]+v[k]] = std::make_pair(target - (v[i] + v[j] + v[k]),temp);
}
for(int i=0;i<n;i++)
for(int j=i;j<n;j++) {
for(int k=j;k<n;k++)
if(v[i]+v[j]+v[k] == map[target - (v[i]+v[j]+v[k])].first) {
std::vector<int> temp = map[target - (v[i]+v[j]+v[k])].second;
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<temp[0]<<" "<<temp[1]<<" "<<temp[2];
found = true;
return;
}
}
}
int main()
{
f>>n>>target;
v.resize(n);
for(int i=0;i<n;i++) f>>v[i];
solution();
if(!found) g<<-1;
return 0;
}