Pagini recente » Cod sursa (job #576575) | Cod sursa (job #2944779) | Cod sursa (job #371035) | Cod sursa (job #1963306) | Cod sursa (job #2836184)
#include <iostream>
#include <fstream>
#include <iomanip>
#include <deque>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
deque <int>dx;
int c[300005], t[300005];
int main()
{
int n, l, u; fin >> n >> l >> u;
double mnn=0;
for(int i=1; i<=n; i++) fin >> c[i];
for(int i=1; i<=n; i++) fin >> t[i];
double sc=0, st=0;
for(int i=1; i<=n; i++)
{
dx.push_back(i);
sc+=c[i]; st+=t[i];
if(dx.size()>u)
{
sc-=c[dx.front()];
st-=t[dx.front()];
dx.pop_front();
}
while(sc/st<=(sc-c[dx.front()])/(st-t[dx.front()]))
{
sc-=c[dx.front()];
st-=t[dx.front()];
dx.pop_front();
if(dx.size()>=l && sc/st>mnn) mnn=sc/st;
}
if(dx.size()>=l && sc/st>mnn) mnn=sc/st;
}
while(dx.size()>=l)
{
if(sc/st>mnn) mnn=sc/st;
sc-=c[dx.front()];
st-=t[dx.front()];
dx.pop_front();
}
fout << fixed<< setprecision(2) << mnn;
return 0;
}