Pagini recente » Cod sursa (job #209278) | Cod sursa (job #1038925) | Cod sursa (job #2187909) | Cod sursa (job #1151945) | Cod sursa (job #569904)
Cod sursa(job #569904)
#include <cstdio>
#define Nmax 30001
using namespace std;
int S[Nmax], J[Nmax], N, L, U, i, sus, jos, st, dr, minsus, minjos;
double rez, temp;
int main()
{
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
scanf("%d %d %d\n", &N, &L, &U);
for (i = 1; i<=N; i++) scanf("%d ", S + i);
for (i = 1; i<=N; i++) scanf("%d ", J + i);
for (i = 1; i<=L; i++) { sus+=S[i]; jos +=J[i]; }
rez = (double)sus / jos;
st = 1; dr = L; minsus = sus; minjos = jos;
for (i = L + 1; i<=N; i++)
{
sus += S[i];
jos += J[i];
minsus += S[i] - S[i-L];
minjos += J[i] - J[i-L];
if (dr - st + 1 == U) { sus -=S[i-L]; jos -=J[i-L]; }
if ((double)sus / jos > (double)minsus / minjos)
{
dr++;
temp = (double)sus / jos;
}
else
{
sus = minsus;
jos = minjos;
dr = i;
st = i-L+1;
temp = (double)sus / jos;
}
if (temp > rez) rez = temp;
}
printf("%.2lf", rez);
return 0;
}