Pagini recente » Cod sursa (job #1265384) | Cod sursa (job #658201) | Cod sursa (job #2338146) | Cod sursa (job #51874) | Cod sursa (job #2747667)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct sum
{
bool ok = false;
int i, j, k;
};
int main()
{
int N, S, i, j, k, suma, suma_cautata;
unordered_map <int, sum> perechi; /// Pentru suma X vom atasa o pereche din care rezulta acea suma
in >> N >> S;
vector <int> numere(N);
for (i = 0; i < N; ++i)
{
in >> numere[i];
}
for (i=N-1; i>=0; --i)
for (j=i; j>=0; --j)
for (k=j; k>=0; --k)
{
suma = numere[i] + numere[j] + numere[k];
perechi[suma].i = numere[i];
perechi[suma].j = numere[j];
perechi[suma].k = numere[k];
perechi[suma].ok = 1;
}
for (i=N-1; i>=0; --i)
for (j=i; j>=0; --j)
for (k=j; k>=0; --k)
{
suma_cautata = S - numere[i] - numere[j] - numere[k];
if (perechi[suma_cautata].ok)
{
out << numere[i] << " " << numere[j] << " " << numere[k] << " ";
out << perechi[suma_cautata].i << " " << perechi[suma_cautata].j << " " << perechi[suma_cautata].k;
return 0;
}
}
out << "-1";
return 0;
}