Pagini recente » Cod sursa (job #1433860) | Cod sursa (job #1391528) | Cod sursa (job #2773868) | Cod sursa (job #655845) | Cod sursa (job #2328223)
#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;
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){
double sec = 1.0000 * (c[i] - c[j - 1]) / (t[i] - t[j - 1]);
ans = max(ans, sec);
if(ans == sec)
rez += pas;
}
pas /= 2;
}
if(i >= l)
dq[++dr] = i - l + 1;
}
fout << fixed << setprecision(2) << ans;
return 0;
}