Cod sursa(job #2893570)

Utilizator mihairazvan03Dana Mihai mihairazvan03 Data 26 aprilie 2022 12:12:44
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include <algorithm>
#include <fstream>

using namespace std;

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

struct ListaSume
{
    int s, x, y, z;
} lista[1000001];

int n, suma, i, j, k, v[101], ma, nrSume, gasit;
int main()
{
    in>>n>>suma;
    for(i = 1; i <= n; i++)
        in>>v[i];

    for(i = 1; i <= n; i++)      //facem sume de cate 3 numere, pentru ca apoi sa vedem daca gasim alta suma de 3 nr care adunate sa dea s
        for(j = i; j <= n; j++)
            for(k = j; k <= n; k++)
            {
                lista[++nrSume].s = v[i] + v[j] + v[k];
                lista[nrSume].x = v[i];
                lista[nrSume].y = v[j];
                lista[nrSume].z = v[k];
            }

    sort(v + 1, v + nrSume + 1);

    for(i = 1, j = nrSume; i <= j; i++, j--)
    {
        if(lista[i].s + lista[j].s > suma)
            j--;
        else if(lista[i].s + lista[j].s < suma)
            i++;

        if(lista[i].s + lista[j].s == suma)
        {
            out<<lista[i].x<<" "<<lista[i].y<<" "<<lista[i].z<<" "<<lista[j].x<<" "<<lista[j].y<<" "<<lista[j].z;
            gasit = 1;
            break;
        }
    }

    if(gasit == 0)
        out<<-1;

    return 0;
}