Pagini recente » Cod sursa (job #1033846) | Cod sursa (job #1874868) | Cod sursa (job #1043966) | Cod sursa (job #360151) | Cod sursa (job #2064741)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
const int N=30010;
int n,st,dr,i,d[N],l,u;
float val_max,sum,c[N],t[N],sumt[N],sumc[N];
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]-sumc[i-l])/(sumt[i]-sumt[i-l])>=(sumc[i]-sumc[d[dr]])/(sumt[i]-sumt[d[dr]]))
{
dr--;
}
d[++dr]=i-l;
sum=(sumc[i]-sumc[d[st]])/(sumt[i]-sumt[d[st]]);
if(sum>val_max)
val_max=sum;
}
}
g<<fixed<<setprecision(2)<<val_max;
return 0;
}