Pagini recente » Cod sursa (job #510306) | Cod sursa (job #2678733) | Cod sursa (job #1853472) | Cod sursa (job #2702373) | Cod sursa (job #96176)
Cod sursa(job #96176)
#include<fstream.h>
#define dim 30000
int cost[dim+1],timp[dim+1];
struct secv
{unsigned long c,t;
};
secv v[dim][2];
int main()
{ifstream f("secv3.in");
ofstream g("secv3.out");
int n,u,l,i,j,nr,nr2,n2,ok;
unsigned long max,aux;
f>>n>>l>>u;
for(i=1;i<=n;i++) f>>cost[i];
for(i=1;i<=n;i++) f>>timp[i];
f.close();
v[1][0].c=v[1][0].t=0;
for(i=1;i<=l;i++) {v[1][0].c+=cost[i];v[1][0].t+=timp[i];}
max=(v[1][0].c*100)/v[1][0].t;
nr=1;
for(i=l+1;(i<=u)&&(i<=n);i++)
{nr2=nr+1;
v[nr2][0].c=v[nr][0].c+cost[i];v[nr2][0].t=v[nr][0].t+timp[i];
aux=(v[nr2][0].c*100)/v[nr2][0].t;
if(aux>max) max=aux;
nr=nr2;
}
n2=n-l+1;ok=1;
for(i=2;i<=n2;i++)
if(ok)
{v[1][1].c=v[2][0].c-cost[i-1];
v[1][1].t=v[2][0].t-timp[i-1];
aux=(v[1][1].c*100)/v[1][1].t;
if(aux>max) max=aux;
nr=1;
for(j=l+1;(j<=u)&&((i+j-1)<=n);j++)
{nr2=nr+1;
v[nr2][1].c=v[nr][1].c+cost[i+j-1];v[nr2][1].t=v[nr][1].t+timp[i+j-1];
aux=(v[nr2][1].c*100)/v[nr2][1].t;
if(aux>max) max=aux;
nr=nr2;
}
ok=0;
}
else
{v[1][0].c=v[2][1].c-cost[i-1];
v[1][0].t=v[2][1].t-timp[i-1];
aux=(v[1][0].c*100)/v[1][0].t;
if(aux>max) max=aux;
nr=1;
for(j=l+1;(j<=u)&&((i+j-1)<=n);j++)
{nr2=nr+1;
v[nr2][0].c=v[nr][0].c+cost[i+j-1];v[nr2][0].t=v[nr][0].t+timp[i+j-1];
aux=(v[nr2][0].c*100)/v[nr2][0].t;
if(aux>max) max=aux;
nr=nr2;
}
ok=1;
}
/*unsigned long max1;
max1=(maxc*100)/maxt; */
long double r;
r=max/100.0;
g<<r<<'\n';
g.close();
return 0;
}