Pagini recente » Cod sursa (job #1112560) | Cod sursa (job #2571532) | Cod sursa (job #1709825) | Cod sursa (job #2653754) | Cod sursa (job #2891136)
#include <bits/stdc++.h>
using namespace std;
ifstream in("secv3.in");
ofstream out("secv3.out");
int n, l, u;
double cost[30005], timp[30005], sus, jos, ans;
int main()
{
in>>n>>l>>u;
for (int i = 1; i <= n; i++)
in>>cost[i];
for (int i = 1; i <= n; i++)
in>>timp[i];
int st = 1, dr = 2;
sus = cost[1];
jos = timp[1];
if (l == 1)
ans = sus / jos;
while (dr <= n) {
if (dr - st + 1 < u) {
if (sus + cost[dr] / jos + timp[dr] > sus / jos) {
sus += cost[dr];
jos += timp[dr];
dr++;
}
else {
while (sus + cost[dr] / jos + timp[dr] < sus / jos && st < dr) {
sus -= cost[st];
jos -= timp[st];
st++;
}
sus += cost[dr];
jos += timp[dr];
dr++;
}
if (dr - st + 1>= l)
ans = max(ans, sus / jos);
}
else {
sus -= cost[st];
jos -= timp[st];
st++;
if (dr - st + 1>= l)
ans = max(ans, sus / jos);
}
}
out<<fixed<<setprecision(2)<<ans;
}