Pagini recente » Cod sursa (job #1048648) | Cod sursa (job #1962518) | Cod sursa (job #2230130) | Cod sursa (job #748895) | Cod sursa (job #2610444)
#include <iostream>
#include <bits/stdc++.h>
#define nmax 100005
using namespace std;
ifstream f("fabrica.in");
ofstream g("fabrica.out");
set<pair<int,int> >s;
set<pair<int,int> > :: iterator it;
int n,nra,nrb,a[nmax],sola[nmax],solb[nmax],b[nmax],solmin=0;
int main()
{
f>>n>>nra>>nrb;
for(int i=1;i<=nra;i++)
{
f>>a[i];
s.insert({a[i],i});
///simulam evenimentele
}
///calculam timpul minim pt procesorul a
for(int i=1;i<=n;i++)
{
it=s.begin();
int timp=it->first;
int idx=it->second;
sola[i]=timp;
s.erase(it);
s.insert({timp+a[idx],idx});
}
///task1
g<<sola[n]<<" ";
s.clear();
///calculam timpul minim pt procesorul b
for(int i=1;i<=nrb;i++)
{
f>>b[i];
s.insert({b[i],i});
}
for(int i=1;i<=n;i++)
{
it=s.begin();
int timp=it->first;
int idx=it->second;
solb[i]=timp;
s.erase(it);
s.insert({timp+b[idx],idx});
}
for(int i=1;i<=n;i++)
{
solmin=max(solmin,sola[i]+solb[n-i+1]);
}
g<<solmin;
}