Pagini recente » Cod sursa (job #2186086) | Cod sursa (job #850415) | Cod sursa (job #2568250) | Cod sursa (job #1062668) | Cod sursa (job #2328227)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 30005;
int c[MAXN], t[MAXN], dq[MAXN];
int main()
{
ifstream fin("secv3.in");
ofstream fout("secv3.out");
int n, l, u;
fin >> n >> l >> u;
for(int i = 1; i <= n; ++i){
fin >> c[i];
c[i] += c[i - 1];
}
for(int i = 1; i <= n; ++i){
fin >> t[i];
t[i] += t[i - 1];
}
int st = 0, dr = 0;
long double ans = 0.00;
for(int i = 1; i <= n; ++i){
while(dr >= st && dq[st] <= i - u)
st++;
int rez = 0, pas = 1 << 30;
while(pas){
int j = rez + pas;
if(j >= dq[st] && j <= i - l + 1){
long double sec = 1.0000 * (c[i] - c[j - 1]) / (t[i] - t[j - 1]);
ans = max(ans, sec);
rez += pas;
}
pas /= 2;
}
if(i >= l)
dq[++dr] = i - l + 1;
}
fout << fixed << setprecision(3) << ans;
return 0;
}