Cod sursa(job #2860571)

Utilizator vladutzu_finutzuVlad Cacenschi vladutzu_finutzu Data 2 martie 2022 19:43:39
Problema Fabrica Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream cin("fabrica.in");
ofstream cout("fabrica.out");
int n, nra, nrb;
long long rez;
priority_queue<pair<long long, long long> > pq;
vector<long long> tA, tB;
int main(int argc, const char * argv[]) {
    cin>>n>>nra>>nrb;
    
    for(int i=1; i<=nra; i++)
    {
        long long eta;
        cin>>eta;
        pq.push({-eta, -1});
    }
    
    for(int i=1; i<=n; i++)
    {
        pair<long long, long long> r = pq.top();
        long long time = 1LL * r.first * r.second;
        
        rez = max(rez, time);
        
        tA.push_back(time);
        
        pq.pop();
        pq.push({1LL * (time / r.second), r.second - 1});
    }
    
    cout<<rez;
    
    while(!pq.empty())
        pq.pop();
    
    for(int i=1; i<=nrb; i++)
    {
        long long eta;
        cin>>eta;
        pq.push({-eta, -1});
    }
    
    for(int i=1; i<=n; i++)
    {
        pair<long long, long long> r = pq.top();
        long long time = 1LL * r.first * r.second;
        
        rez = max(rez, time);
        
        tB.push_back(time);
        
        pq.pop();
        pq.push({1LL * (time / r.second), r.second - 1});
    }
    
    rez = 0;
    for(int i=0; i<tA.size(); i++)
        rez = max(rez, tA[i] + tB[tA.size() - i - 1]);
    
    cout<<" "<<rez;
        
    return 0;
}