Pagini recente » Cod sursa (job #271360) | Cod sursa (job #2586229) | Cod sursa (job #2596037) | Cod sursa (job #1413860) | Cod sursa (job #2894131)
#include <fstream>
#include<unordered_map>
int main()
{
std::ifstream fileIn("loto.in");
std::ofstream fileOut("loto.out");
int v[100];
std::unordered_map<int, std::tuple<short,short,short>> multime;
short n;
int suma;
int x;
fileIn >> n >> suma;
int maxim = -1;
for (int i = 0; i < n ; i++) {
fileIn >> x;
v[i] = x;
maxim = (x > maxim) ? x : maxim;
}
if (maxim* 6 < suma) {
fileOut << -1;
return 0;
}
for(int i= 0; i < n; i++)
for ( int j = 0; j < n; j++)
for (int k = 0; k < n; k++) {
std::tuple<short,short,short> tuplu (i,j,k);
if (multime.find(suma-(v[i] + v[j]+ v[k]))!= multime.end()) {
std::tuple<short,short,short> tuplu2;
tuplu2 = (*multime.find(suma-(v[i] + v[j]+ v[k]))).second;
fileOut << v[std::get<0>(tuplu2)] << ' ';
fileOut << v[std::get<1>(tuplu2)]<< ' ';
fileOut << v[std::get<2>(tuplu2)]<< ' ';
fileOut << v[std::get<0>(tuplu)] << ' ';
fileOut << v[std::get<1>(tuplu)]<< ' ';
fileOut << v[std::get<2>(tuplu)]<< ' ';
return 0;
}
std::pair<int, std::tuple<short,short,short>>perechea ((v[i] + v[j]+ v[k]), tuplu);
multime.insert(perechea);
}
fileOut << -1;
return 0;
}