Pagini recente » Cod sursa (job #3335194) | Cod sursa (job #764742) | Cod sursa (job #2474860) | Cod sursa (job #3315295)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
vector < double > spc(30001);
vector < double > spt(30001);
vector < int > c(30001);
vector < int > t(30001);
deque < int > dq;
int main() {
int n, l, u;
fin >> n >> l >> u;
for (int i = 1; i <= n; i++) {
fin >> c[i];
spc[i] = spc[i - 1] + c[i];
}
for (int i = 1; i <= n; i++) {
fin >> t[i];
spt[i] = spt[i - 1] + t[i];
}
double maxi = 0;
for (int i = l; i <= n; i++) {
while (!dq.empty() && dq.front() < i - u) {
dq.pop_front();
}
while (!dq.empty() && (spc[dq.back()] - spt[dq.back()] * maxi) > (spc[i - l] - spt[i - l] * maxi)) {
dq.pop_back();
}
dq.push_back(i - l);
double pe = (spc[i] - spc[dq.front()]) / (spt[i] - spt[dq.front()]);
if (pe > maxi) {
maxi = pe;
}
}
fout << fixed << setprecision(2) << maxi << '\n';
return 0;
}