Pagini recente » Cod sursa (job #2761817) | Cod sursa (job #2724653) | Cod sursa (job #2549651) | Cod sursa (job #612283) | Cod sursa (job #2892526)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int main()
{
int N, S, *numere;
unordered_map<int, tuple<int, int, int>>sume;
fin >> N >> S;
numere = new int[N + 1];
for (int i = 0; i < N; ++i)
fin >> numere[i];
for (int i = 0; i < N; ++i)
for (int j = i; j < N; ++j)
for (int k = j; k < N; ++k)
{ if(sume.find(numere[i] + numere[j] + numere[k]) == sume.end())
sume[numere[i] + numere[j] + numere[k]] = make_tuple(i, j, k);
}
for (int i = 0; i < N; ++i)
for (int j = i; j < N; ++j)
for (int k = j; k < N; ++k)
if (sume.find(S - numere[i] - numere[j] - numere[k]) != sume.end())
{
fout << numere[get<0>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[get<1>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[get<2>(sume[S - numere[i] - numere[j] - numere[k]])] << ' ' << numere[i] << ' ' << numere[j] << ' ' << numere[k];
return 0;
}
fout << -1;
return 0;
}