Cod sursa(job #2359258)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 28 februarie 2019 19:07:18
Problema Loto Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

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

struct triplet
{
    int sum, x, y, z;

    bool operator < (const triplet other) const
    {
        return sum < other.sum;
    }
};

int N, S, v[105];
vector <triplet> A;

int main()
{
    fin >> N >> S;

    for(int i = 1; i <= N; i++)
        fin >> v[i];

    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            for(int k = 1; k <= N; k++)
                A.push_back({v[i] + v[j] + v[k], v[i], v[j], v[k]});

    sort(A.begin(), A.end());

    int st = 0, dr = A.size() - 1;

    while(st <= dr)
    {
        int s = A[st].sum + A[dr].sum;

        if(s == S)
        {
            fout << A[st].x << ' ' << A[st].y << ' ' << A[st].z << ' ' << A[dr].x << ' ' << A[dr].y << ' ' << A[dr].z << '\n';
            return 0;
        }
        else if(s > S)
            dr--;
        else
            st++;
    }

    fout << -1 << '\n';
    return 0;
}