Pagini recente » Cod sursa (job #375207) | Cod sursa (job #2874842) | Cod sursa (job #921546) | Cod sursa (job #2124347) | Cod sursa (job #2890883)
#include <cstdio>
using namespace std;
int v[30005], t[30005];
int n, l, r;
int ok(double med){
int i, j = 0, s = 0;
for(i = l;i <= n;i++){
if(i - j > r){
j++;
}
while(j < i && (double)(v[i] - v[j]) / (t[i] - t[j]) < med)
j++;
if(i - j >= l)
return 1;
}
return 0;
}
double bs(double st, double dr){
double med;
int i;
for(i = 0;i < 50;i++){
med = (st + dr) / 2;
if(ok(med))
st = med;
else
dr = med;
}
return med;
}
int main()
{
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
int i;
scanf("%d%d%d", &n, &l, &r);
for(i = 1;i <= n;i++){
scanf("%d", &v[i]);
v[i] += v[i - 1];
}
for(i = 1;i <= n;i++){
scanf("%d", &t[i]);
t[i] += t[i - 1];
}
printf("%.2lf", bs(0.0, 1000.0));
return 0;
}