Pagini recente » Cod sursa (job #896728) | Cod sursa (job #552437) | Cod sursa (job #2051979) | Cod sursa (job #2228212) | Cod sursa (job #3131870)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int solutions[1010000];
int numbers[101];
int num_count;
ifstream fin("loto.in");
ofstream fout("loto.out");
void printSolution(int index)
{
for (int i = 0; i < num_count; i++)
for (int j = i; j < num_count; j++)
for (int k = j; k < num_count; k++)
if (solutions[index] == numbers[i] + numbers[j] + numbers[k])
{
fout << numbers[i] << " " << numbers[j] << " " << numbers[k] << " ";
return;
}
}
int main()
{
int sum;
fin >> num_count >> sum;
long long int count = 0;
for (int i = 0; i < num_count; i++)
fin >> numbers[i];
for (int i = 0; i < num_count; i++)
for (int j = i; j < num_count; j++)
for (int k = j; k < num_count; k++)
solutions[count++] = numbers[i] + numbers[j] + numbers[k];
sort(solutions, solutions + count);
int i = 0, j = count - 1;
bool found = false;
while (i <= j)
{
if (solutions[i] + solutions[j] == sum)
{
printSolution(i);
printSolution(j);
found = true;
break;
}
while (solutions[i] + solutions[j] > sum)
{
j--;
}
while (solutions[i] + solutions[j] < sum)
{
i++;
}
}
if (found == false)
fout << "-1";
return 0;
}