Cod sursa(job #3154179)

Utilizator SSKMFSS KMF SSKMF Data 3 octombrie 2023 17:23:17
Problema Loto Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream cin ("loto.in");
ofstream cout ("loto.out");

int sir[101];
bool gasit;

void Cauta (int factor , int inceput , int suma)
{
    if (factor == 2)
    {
        int stanga = 1 , dreapta = inceput;
        while (stanga <= dreapta && sir[stanga] + sir[dreapta] != suma)
            (sir[stanga] + sir[dreapta] < suma ? stanga++ : dreapta--);

        if (stanga <= dreapta)
            { cout << sir[stanga] << ' ' << sir[dreapta] << ' '; gasit = true; }

        return;
    }

    for (int indice = inceput ; 1LL * factor * sir[indice] >= suma && !gasit ; indice--)
        { Cauta(factor - 1 , indice , suma - sir[indice]); if (gasit) cout << sir[indice] << ' '; }
}

int main ()
{
    int lungime , suma;
    cin >> lungime >> suma;

    for (int indice = 1 ; indice <= lungime ; indice++)
        cin >> sir[indice];

    sort(sir + 1 , sir + lungime + 1);

    Cauta(6 , lungime , suma);
    if (!gasit) cout << "-1";
    cout.close(); cin.close();
    return 0;
}