Cod sursa(job #2919262)

Utilizator victor_gabrielVictor Tene victor_gabriel Data 16 august 2022 16:24:38
Problema Loto Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int DIM = 101;
const int TOKEN_DIM = 6;

int n, s, cnt = 0;
int v[DIM], sol[TOKEN_DIM + 1];

int getIndex() {
    int index;
    for (index = 2; index <= n; index++)
        if (TOKEN_DIM * v[index] > s)
            return index - 1;
    return n;
}

int main() {
    fin >> n >> s;
    for (int i = 1; i <= n; i++)
        fin >> v[i];

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

    int initIndex = getIndex(), initVal = v[initIndex];
    int currentSum = initVal * TOKEN_DIM;
    for (int i = 1; i <= TOKEN_DIM; i++)
        sol[i] = initVal;
    for (int i = TOKEN_DIM; i >= 1; i--) {
        for (int j = n; j > initIndex; j--)
            if (currentSum + (v[j] - initVal) <= s) {
                sol[i] = v[j];
                currentSum += (v[j] - initVal);
                break;
            }
    }

    if (currentSum == s) {
        for (int i = 1; i <= TOKEN_DIM; i++)
            fout << sol[i] << ' ';
    }
    else
        fout << -1;

    return 0;
}