Pagini recente » Cod sursa (job #2673474) | Cod sursa (job #313102) | Cod sursa (job #631500) | Cod sursa (job #765449) | Cod sursa (job #2746423)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
struct sum
{
int ok = 0, i, j, k;
};
int main()
{
int N, S, i, j, k, x;
vector <int> numere;
unordered_map <int, sum> sume_perechi; /// Pentru suma X vom atasa o pereche din care rezulta acea suma
in >> N >> S;
for (i = 1; i <= N; i++)
{
in >> x;
numere.push_back(x);
}
for (i = 0; i < N; i++)
{
for (j = i; j < N; j++)
{
for (k = j; k < N; k++)
{
sume_perechi[numere[i] + numere[j] + numere[k]].i = numere[i];
sume_perechi[numere[i] + numere[j] + numere[k]].j = numere[j];
sume_perechi[numere[i] + numere[j] + numere[k]].k = numere[k];
sume_perechi[numere[i] + numere[j] + numere[k]].ok = 1;
}
}
}
int ok2 = 0;
for (i = 0; i < N; i++)
{
for (j = i; j < N; j++)
{
for (k = j; k < N; k++)
{
if (sume_perechi[S - numere[i] - numere[j] - numere[k]].ok != 0)
{
out << numere[i] << " " << numere[j] << " " << numere[k] << " " << sume_perechi[S - numere[i] - numere[j] - numere[k]].i << " " << sume_perechi[S - numere[i] - numere[j] - numere[k]].j << " " << sume_perechi[S - numere[i] - numere[j] - numere[k]].k;
i = N;
j = N;
k = N;
ok2 = 1;
}
}
}
}
if (ok2 == 0)
out << "-1";
return 0;
}