Pagini recente » Cod sursa (job #1070407) | Cod sursa (job #2460792) | Cod sursa (job #2506630) | Cod sursa (job #3250358) | Cod sursa (job #3130773)
#include <fstream>
#include <unordered_map>
#include <tuple>
#include <vector>
using namespace std;
int main() {
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, S;
vector<int> nums;
fin>>n>>S;
for(int i=0; i<n; i++){
int x;
fin>>x;
if(x<=S)
nums.push_back(x);
}
unordered_map<int, tuple<int, int, int>> sums;
for(int i=0; i<n; i++)
for(int j=i; j<n; j++)
for(int k=j; j<n; j++){
int sum = nums[i] + nums[j] + nums[k];
if(sum <= S)
sums[sum] = make_tuple(nums[i], nums[j], nums[k]);
}
bool ok = false;
for(auto it: sums){
if(sums.find(S-it.first) != sums.end()){
fout<<get<0>(it.second)<<" "<<get<1>(it.second)<<" "<<get<2>(it.second)<<" "
<<get<0>(sums[S-it.first])<<" "<<get<1>(sums[S-it.first])<<" "<<get<0>(sums[S-it.first])<<"\n";
ok = true;
break;
}
}
if(!ok)
fout<<"-1";
fin.close();
fout.close();
return 0;
}