Pagini recente » Cod sursa (job #315089) | Cod sursa (job #230134) | Cod sursa (job #1124430) | Cod sursa (job #657361) | Cod sursa (job #3340689)
#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;
}