Cod sursa(job #3131869)

Utilizator davidtoma11Toma David davidtoma11 Data 21 mai 2023 20:21:04
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.49 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(1010000);
vector<int> numbers(101);
int n;
ifstream fin("loto.in");
ofstream fout("loto.out");

void printResult(int index) {
    for (int i = 0; i < n; i++) {
        for (int j = i; j < n; j++) {
            for (int k = j; k < n; k++) {
                if (solution[index] == numbers[i] + numbers[j] + numbers[k]) {
                    fout << numbers[i] << " " << numbers[j] << " " << numbers[k] << " ";
                    return;
                }
            }
        }
    }
}

int main() {
    int sum;
    fin >> n >> sum;
    long long int count = 0;
    for (int i = 0; i < n; i++)
        fin >> numbers[i];
    for (int i = 0; i < n; i++) {
        for (int j = i; j < n; j++) {
            for (int k = j; k < n; k++) {
                solution[count++] = numbers[i] + numbers[j] + numbers[k];
            }
        }
    }
    sort(solution.begin(), solution.begin() + count);
    int i = 0, j = count - 1;
    bool found = false;
    while (i <= j) {
        if (solution[i] + solution[j] == sum) {
            printResult(i);
            printResult(j);
            found = true;
            break;
        }
        while (solution[i] + solution[j] > sum) {
            j--;
        }
        while (solution[i] + solution[j] < sum) {
            i++;
        }
    }
    if (!found)
        fout << "-1";
    return 0;
}