Pagini recente » Cod sursa (job #820102) | Cod sursa (job #678330) | Cod sursa (job #895893) | Cod sursa (job #887260) | Cod sursa (job #2064736)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
const int N=30010;
int c[N],t[N],n,st,dr,i,d[N],l,u,sumc[N],sumt[N];
double val_max,sum;
int main()
{
f>>n>>l>>u;
st=0;
dr=-1;
val_max=-1;
for(i=0; i<n; i++)
{f>>c[i];
sumc[i]=sumc[i-1]+c[i];
}
for(i=0; i<n; i++)
{f>>t[i];
sumt[i]=sumt[i-1]+t[i];
}
for(i=0; i<n; i++)
{
if(st<=dr && d[st]<=i-u-1)
{
st++;
}
if(i>=l)
{
while(st<=dr && (sumc[i-l]/sumt[i-l])>=(sumc[d[dr]]/sumt[d[dr]]))
{
dr--;
}
d[++dr]=i-l;
sum=(double)(sumc[i]-sumc[d[st]])/(double)(sumt[i]-sumt[d[st]]);
if(sum>val_max)
val_max=sum;
}
}
g<<fixed<<setprecision(2)<<val_max;
return 0;
}