Pagini recente » Cod sursa (job #801392) | Cod sursa (job #841970) | Cod sursa (job #240962) | Cod sursa (job #3219275) | Cod sursa (job #2371954)
#include <iostream>
using namespace std;
int c[30005], t[30005], d[30005];
int main()
{
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
int n, mn, mx;
scanf("%d%d%d", &n, &mn, &mx);
for(int i = 1; i <= n; ++i) scanf("%d", &c[i]);
for(int i = 1; i <= n; ++i) scanf("%d", &t[i]);
double ans = 0;
int F = 1, L = 0, sum1 = 0, sum2 = 0;
for(int i = 1; i <= mn; ++i) d[++L] = i, sum1 += c[i], sum2 += t[i];
ans = max(ans, 1.0 * sum1 / sum2);
for(int i = mn + 1; i <= n; ++i) {
sum1 += c[i], sum2 += t[i];
ans = max(ans, 1.0 * sum1 / sum2);
d[++L] = i;
while(L - F + 1 > mn && 1.0 * (sum1 - c[d[F]]) / (sum2 - t[d[F]])) {
sum1 -= c[d[F]], sum2 -= t[d[F]], ++F;
ans = max(ans, 1.0 * sum1 / sum2);
}
if(L - F + 1 == mx) sum1 -= c[d[F]], sum2 -= t[d[F]], ++F;
}
printf("%f", ans);
return 0;
}