Pagini recente » Cod sursa (job #1786677) | Cod sursa (job #1190749) | Cod sursa (job #2780431) | Cod sursa (job #426946) | Cod sursa (job #3129819)
#include <fstream>
#include <iostream>
#include <queue>
#include <unordered_map>
std::ifstream in;
std::ofstream out;
int main() {
std::unordered_map<int, int*> mp;
int n, S, i, j, k, l, v[105];
bool f = false;
std::priority_queue<int, std::vector<int>, std::greater<int> >rez;
in.open("loto.in");
in>>n>>S;
for(i = 0; i < n; i++)
in>>v[i];
in.close();
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
for(k = 0; k < n; k++)
{
int aux[3] = {v[i],v[j],v[k]};
mp[v[i]+v[j]+v[k]] = aux;
}
for(i = 0; i < n and !f; i++)
for(j = 0; j < n and !f; j++)
for(k = 0; k < n and !f; k++)
{
int sum = S-(v[i]+v[j]+v[k]);
if(mp.find(sum) != mp.end()){
rez.push(v[i]);
rez.push(v[j]);
rez.push(v[k]);
for(l = 0; l < 3; l++)
rez.push(mp.find(sum)->second[l]);
f = true;
}
}
out.open("loto.out");
if(f){
while(!rez.empty()){
out<<rez.top()<<' ';
rez.pop();
}
}
else{
out<<-1;
}
out.close();
return 0;
}