Cod sursa(job #3340689)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 15 februarie 2026 19:23:34
Problema Fabrica Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream cin("fabrica.in");
ofstream cout("fabrica.out");


priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> qu, qs; // timpul minim can un procesoar va termina berea

int main() {
int n,U,S,solU[100005],solS[100005];
cin >> n >> U >> S;
for(int i = 1; i<= U; ++i) {
	int x;
	cin >> x;
	qu.push({x,x});
}

for(int i = 1; i<= S; ++i) {
	int x;
	cin >> x;
	qs.push({x,x});
}

for(int i = 1; i <= n; ++i) {
	int timp = qu.top().first;
	int durata = qu.top().second;
	solU[i] = timp;
	qu.pop();
	qu.push({timp+durata,durata});
}

for(int i = 1; i <= n; ++i) {
	int timp = qs.top().first;
	int durata = qs.top().second;
	solS[i] = timp;
	qs.pop();
	qs.push({timp+durata,durata});
}
int mau=0;
for(int i = 1; i <= n; ++i) {

    mau = max(mau,solU[i]);
    
}
/*
for(int i = 1; i <= n; ++i)
    cout << solS[i] << " ";
*/
int ma= 0;
for(int i =1 ; i <=n; ++i) {
	int total = solS[n-i+1] + solU[i];
	ma = max(ma, total);
}
cout <<mau << " " <<ma;
}