Pagini recente » Cod sursa (job #1484359) | Cod sursa (job #1424730) | Cod sursa (job #491033) | Cod sursa (job #1739721) | Cod sursa (job #307827)
Cod sursa(job #307827)
#include <cstdio>
#include <ctime>
#include <cstdlib>
#define maxN 30010
int A[maxN], B[maxN], X[maxN], Y[maxN];
int N, M;
int main () {
int i, L, U, j, st, diff;
double Sol = 0;
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
scanf("%d%d%d", &N, &L, &U);
for (i = 1; i <= N; ++ i)
scanf("%d", &X[i]);
for (i = 1; i <= N; ++ i)
scanf("%d", &Y[i]);
for (i = 1; i <= N; ++ i)
A[i] = A[i - 1] + X[i];
for (i = 1; i <= N; ++ i)
B[i] = B[i - 1] + Y[i];
srand(time(NULL));
for (i = L; i <= N; ++ i) {
st = (i <= U) ? i : U;
diff = st - L;
if (diff < 1000) {
for (j = 0; j <= diff; ++ j) {
st = i - L - j;
if (1.00 * (A[i] - A[st]) / (B[i] - B[st]) > Sol)
Sol = 1.00 * (A[i] - A[st]) / (B[i] - B[st]);
}
} else {
for (j = 1; j <= 1000; ++ j) {
st = i - L - rand () % diff;
if (1.00 * (A[i] - A[st]) / (B[i] - B[st]) > Sol)
Sol = 1.00 * (A[i] - A[st]) / (B[i] - B[st]);
}
}
}
printf("%.2lf", Sol);
}