Cod sursa(job #2712278)

Utilizator gasparrobert95Gaspar Robert Andrei gasparrobert95 Data 25 februarie 2021 16:02:00
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("fabrica.in");
ofstream fout("fabrica.out");
int n, na, nb, rez, reza, v[50005];
vector <int> a, b;
priority_queue < pair <int, int>, vector < pair <int, int> >, greater < pair <int, int> > > pq;

int main() {
    fin >> n >> na >> nb;
    for (int i = 1; i <= na; ++i) {
        fin >> v[i];
        pq.push({v[i], i});
    }
    for (int i = 1; i <= n; ++i) {
        int el = pq.top().first, pos = pq.top().second;
        reza = max(reza, el);
        pq.pop();
        a.push_back(el);
        pq.push({el + v[pos], pos});
    }
    while (!pq.empty())
        pq.pop();
    for (int i = 1; i <= nb; ++i) {
        fin >> v[i];
        pq.push({v[i], i});
    }
    for (int i = 1; i <= n; ++i) {
        int el = pq.top().first, pos = pq.top().second;
        pq.pop();
        b.push_back(el);
        pq.push({el + v[pos], pos});
    }
    for (int i = 0; i < n; ++i)
        rez = max(rez, a[i] + b[n - i - 1]);
    fout << reza << " " << rez;
    return 0;
}