Pagini recente » Cod sursa (job #2564246) | Cod sursa (job #2058672) | Cod sursa (job #177796) | Cod sursa (job #2123418) | Cod sursa (job #827197)
Cod sursa(job #827197)
#include<fstream>
#include<iomanip>
using namespace std;
long long n,x,y,m,p,u,z,l,r,ok,i,j,a[30001],b[30001];
long long c[30005],d[30005];
int main()
{
ifstream f("secv3.in");
ofstream g("secv3.out");
f >> n >> x >> y;
z=y-x+1;
for (i=1;i<=n;i++)
{
f >> a[i];
a[i]*=100;
}
for (i=1;i<=n;i++)
f >> b[i];
p=1;u=200000000005;
while (p<=u)
{
m=(p+u)/2;
for (i=1;i<=n;i++)
c[i]=c[i-1]+a[i]-m*b[i];
l=1;r=0;ok=1;
if (c[x]>=0)
ok=0;
for (i=1;i<=n-x;i++)
{
while ((r>0) && (c[i]<d[r]))
r--;
d[++r]=c[i];
if ((i>z) && (c[i-z]==d[l]))
l++;
if (i>=z)
if (c[i+x]-d[l]>=0)
ok=0;
}
if (c[n]-d[l]>=0)
ok=0;
if (ok==0)
p=m+1;
else u=m-1;
}
g << setprecision(2) << fixed << (double)m/100;
return 0;
}