Cod sursa(job #2894946)

Utilizator AnaTurcituTurcitu Ana-Maria AnaTurcitu Data 28 aprilie 2022 16:52:15
Problema Loto Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

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

struct numere
{
    int a, b, c, suma;
};
numere v2[1000000];
int v1[102];
bool comparare(numere y, numere z)
{
    if(y.suma < z.suma)
        return true;
    return false;
}

int main()
{
    int N, S, i, j, k, x = 1;
    bool ok = false;
    f >> N >> S;

    for (i = 1; i <= N; i++)
        f >> v1[i];

    for(i=1; i<=N; i++)
        for(j=1; j<=N; j++)
            for(k=1; k<=N; k++)
            {
                v2[x].a = v1[i];
                v2[x].b = v1[j];
                v2[x].c = v1[k];
                v2[x].suma = v1[i] + v1[j] + v1[k];
                x++;
            }

    sort(v2 + 1, v2 + x + 1, comparare);

    i = 1;
    j = x;
    while(i <= j)
    {
        if(v2[i].suma + v2[j].suma == S)
        {
            g << v2[i].a << ' ' << v2[i].b << ' ' << v2[i].c << ' '<< v2[j].a << ' ' << v2[j].b << ' ' << v2[j].c;
            ok = true;
            break;
        }
        else if(v2[i].suma + v2[j].suma < S)
            i++;
        else j--;
    }
    if(!ok)
        g << -1;
 }