Pagini recente » Cod sursa (job #1734189) | Cod sursa (job #2600408) | Cod sursa (job #1585337) | Cod sursa (job #1997679) | Cod sursa (job #1307343)
#include <fstream>
#include <unordered_map>
#include <vector>
using namespace std;
int main()
{
int N, S, i, j, k;
ifstream f("loto.in");
f >> N >> S;
int a[N + 1], min = ~0;
for (i = 1; i <= N; i++)
{
f >> a[i];
if (a[i] < min)
min = a[i];
}
f.close();
ofstream g("loto.out");
bool found = false;
if (S < 6 * min)
g << -1;
else
{
int sum;
vector<int> numbers(3);
unordered_map<int, vector<int>> map;
for (i = 1; i <= N; i++)
for (j = i; j <= N; j++)
for (k = j; k <= N; k++)
{
sum = a[i] + a[j] + a[k];
numbers[0] = a[i];
numbers[1] = a[j];
numbers[2] = a[k];
map[sum] = numbers;
}
unordered_map<int, vector<int>>::iterator it;
int target;
for (it = map.begin(); it != map.end() && !found; it++)
{
target = S - it->first;
if (map.find(target) != map.end())
{
g << map[it->first][0] << " " << map[it->first][1] << " " << map[it->first][2] << " ";
g << map[S - it->first][0] << " " << map[S - it->first][1] << " " << map[S - it->first][2];
found = true;
}
}
if (!found)
g << -1;
}
g.close();
return 0;
}