Pagini recente » Cod sursa (job #259676) | Cod sursa (job #571267) | Cod sursa (job #2291167) | Cod sursa (job #1712910) | Cod sursa (job #2891135)
#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];
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 && dr - st >= l) {
sus -= cost[st];
jos -= timp[st];
st++;
}
sus += cost[dr];
jos += timp[dr];
dr++;
}
ans = max(ans, sus / jos);
}
else {
sus -= cost[st];
jos -= timp[st];
st++;
ans = max(ans, sus / jos);
}
}
out<<fixed<<setprecision(2)<<ans;
}