Pagini recente » Cod sursa (job #3274083) | Cod sursa (job #240262) | Cod sursa (job #1995957) | Cod sursa (job #880307) | Cod sursa (job #2369549)
#include <fstream>
using namespace std;
ifstream fin ("secv3.in");
ofstream fout ("secv3.out");
int c[30005], t[30005], d[30005];
int main()
{
int n, mn, mx, sum1 = 0, sum2 = 0;
double ans = 0;
fin >> n >> mn >> mx;
for(int i = 1; i <= n; ++i) fin >> c[i];
for(int i = 1; i <= n; ++i) fin >> t[i];
int F = 1, L = 0;
for(int i = 1; i <= mn; ++i) d[++L] = i, sum1 += c[d[L]], sum2 += t[d[L]];
ans = max(ans, 1.0 * sum1 / sum2);
for(int i = mn + 1; i <= n; ++i) {
if(1.0 * c[i] / t[i] >= 1.0 * c[d[L]] / t[d[L]] && ans < 1.0 * c[i] / t[i] || L - F + 2 > mx) {
++F, d[++L] = i;
sum1 += c[d[L]] - c[d[F - 1]], sum2 += t[d[L]] - t[d[F - 1]];
}
else {
d[++L] = i;
sum1 += c[d[L]], sum2 += t[d[L]];
}
ans = max(ans, 1.0 * sum1 / sum2);
}
while(F - L + 1 > mn) {
sum1 -= c[d[F]], sum2 -= t[d[F]];
++F;
ans = max(ans, 1.0 * sum1 / sum2);
}
fout << ans;
return 0;
}