Pagini recente » 11A | Cod sursa (job #123938) | Cod sursa (job #558741) | Cod sursa (job #2793584) | Cod sursa (job #1537053)
#include <iostream>
#include <iomanip>
#include <fstream>
#define FILEIN "secv3.in"
#define FILEOUT "secv3.out"
const int NMAX = 30005;
using namespace std;
int l, u, n;
int c[NMAX];
int t[NMAX];
int main() {
double ans = 0;
int poz = 1;
int beg = 0;
int cs = 0;
int ts = 0;
int len = 0;
freopen(FILEIN, "r", stdin);
freopen(FILEOUT, "w", stdout);
cin >> n >> l >> u;
for (int i = 1; i <= n; i++) {
cin >> c[i];
}
for (int i = 1; i <= n; i++) {
cin >> t[i];
}
int i = 1;
while (i <= n) {
if (len < l) {
if (len == 0) {
beg = i;
}
cs += c[i];
ts += t[i];
i++;
len++;
} else {
if (len < u) {
long long tmp1 = 1LL * cs * (ts + t[i]);
long long tmp2 = 1LL * ts * (cs + c[i]);
if (tmp2 > tmp1) {
cs += c[i];
ts += t[i];
i++;
len++;
} else {
cs = c[i];
ts = t[i];
len = 1;
beg = i;
i++;
}
}
else
if (len == u) {
cs -= c[beg];
ts -= t[beg];
beg++;
len--;
}
}
ans = max(ans, (double)cs / ts);
}
while (len >= l) {
cs -= c[beg];
ts -= t[beg];
beg++;
len--;
ans = max(ans, (double)cs / ts);
}
cout << setprecision(2) << fixed << ans << '\n';
return 0;
}