Pagini recente » Cod sursa (job #1465484) | Cod sursa (job #3310995) | Diferente pentru problema/hidden_points intre reviziile 63 si 49 | Cod sursa (job #1007375) | Cod sursa (job #2011327)
#include <stdio.h>
#include <stdlib.h>
int s[30001],t[30001];
int main()
{
int n,l,u,i,ss,tt,j;
long long max;
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",&s[i]);
for(i=1; i<=n; i++)
scanf("%d",&t[i]);
for(i=1; i<=n; i++)
{
s[i]=s[i-1]+s[i];
t[i]=t[i-1]+t[i];
}
ss=s[l];
tt=t[l];
max=s[l]*100/t[l];
j=1;
for(i=l+1; i<=n; i++)
{
if(i-j+1>u)
{
ss-=(s[j]-s[j-1]);
tt-=(t[j]-t[j-1]);
j++;
}
ss+=(s[i]-s[i-1]);
tt+=(t[i]-t[i-1]);
if(ss*100/tt<(s[i]-s[i-l])*100/(t[i]-t[i-l]))
{
if((long long)ss*100/tt>max)
max=(long long)ss*100/tt;
ss=(s[i]-s[i-l]);
tt=(t[i]-t[i-l]);
j=i-l+1;
}
}
if((long long)ss*100/tt>max)
max=(long long)ss*100/tt;
printf("%lld.%lld\n",max/100,max%100);
return 0;
}