Cod sursa(job #3131870)

Utilizator davidtoma11Toma David davidtoma11 Data 21 mai 2023 20:22:38
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.51 kb
#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;
}