Pagini recente » Cod sursa (job #523906) | Cod sursa (job #2134157) | Cod sursa (job #381729) | Cod sursa (job #873797) | Cod sursa (job #2938200)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
int n, l, u;
int c[30001], t[30001];
int sc[30001], st[30001];
double smx;
int sum(int* v, int st, int sf) {
return v[sf]-v[st-1];
}
double val(int i, int k) {
int scost = sum(sc, i-k+1, i);
int stimp = sum(st, i-k+1, i);
return ((double)(scost)/stimp);
}
int main()
{
fin >> n >> l >> u;
for (int i = 1; i <= n; i++) {
fin >> c[i];
sc[i] = sc[i-1]+c[i];
}
for (int i = 1; i <= n; i++) {
fin >> t[i];
st[i] = st[i-1]+t[i];
}
for (int k = l; k <= u; k++) {
deque<int> q;
for (int i = 1; i <= n; i++) {
while (!q.empty() && val(i, k) > val(q.back(), k)) {
q.pop_back();
}
q.push_back(i);
if (q.front() <= i-k) {
q.pop_front();
}
if (i >= k) {
smx = max(smx, val(q.front(), k));
}
}
}
fout << fixed << setprecision(2) << smx;
return 0;
}