Pagini recente » Cod sursa (job #1519750) | Cod sursa (job #1781375) | Cod sursa (job #761710) | Cod sursa (job #1903225) | Cod sursa (job #1879162)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct map
{
unsigned int value;
unsigned int a, b, c;
};
vector<map> numbers;
vector<unsigned int> cifre;
int main()
{
unsigned int lottoNumbers = 0, sum = 0;
fin >> lottoNumbers >> sum;
for (unsigned int i = 0; i < lottoNumbers; i++)
{
unsigned int x;
fin >> x;
cifre.push_back(x);
}
for (unsigned int i = 0; i < lottoNumbers; i++)
{
for (unsigned int j = 0; j < lottoNumbers; j++)
{
for (unsigned int k = 0; k < lottoNumbers; k++)
{
map x;
x.value = cifre[i] + cifre[j] + cifre[k];
x.a = cifre[i]; x.b = cifre[j]; x.c = cifre[k];
numbers.push_back(x);
}
}
}
sort(numbers.begin(), numbers.end(), [](map a, map b) {if (a.value < b.value)return true; else return false; });
unsigned int st = 0, dr = numbers.size() - 1;
while (st <= dr)
{
if (numbers[dr].value + numbers[st].value == sum)
{
fout << numbers[st].a << ' ' << numbers[st].b << ' ' << numbers[st].c << ' ' << numbers[dr].a << ' ' << numbers[dr].b << ' ' << numbers[dr].c;
return 0;
}
if (numbers[dr].value + numbers[st].value > sum)
{
dr--;
}
else st++;
}
fout << -1;
return 0;
}