Pagini recente » Cod sursa (job #1231099) | Cod sursa (job #3131596) | Cod sursa (job #2670886) | Cod sursa (job #529174) | Cod sursa (job #60415)
Cod sursa(job #60415)
#include <stdio.h>
#define NMAX 30100
int a[NMAX], b[NMAX];
int n, l, u;
double max;
double s1[NMAX], s2[NMAX];
void read()
{
int i;
#define dim 10000
char buf[dim];int poz = 0;
fread(buf,1,dim,stdin);
#define cit(x) \
{ \
x = 0; \
while(buf[poz] < '0') \
{ \
++poz; \
if(poz == dim) \
fread(buf,1,dim,stdin), poz = 0; \
} \
while(buf[poz] >= '0') \
{ \
x = x*10 + buf[poz] - '0'; \
if(++poz == dim) \
fread(buf,1,dim,stdin), poz = 0; \
} \
}
cit(n);cit(l);cit(u);
// scanf("%d %d %d\n", &n, &l, &u);
for(i = 1; i <= n; ++i)
{
// scanf("%d", &a[i]);
cit(a[i]);
}
for(i = 1; i <= n; ++i)
{
// scanf("%d", &b[i]);
cit(b[i]);
}
}
void solve()
{
int i;
short inc, sf;
//double s1, s2;
//double scade1, scade2;
//s1 = s2 = 0;
inc = 1;
sf = l;
max = s1[sf] / s2[sf];
while(sf <= n)
{
/*if(max * (s2[sf] - s2[inc-1]) < s1[sf] - s1[inc-1] )
max = (s1[sf] - s1[inc-1]) / (s2[sf] - s2[inc-1]);
*/
//scade1 = scade2 = 0;
for(i = sf; i <= (sf + (u - l)) && i <= n; ++i)
{
if(max * (s2[i] - s2[inc-1]) < s1[i] - s1[inc-1])
max = (s1[i] - s1[inc-1]) / (s2[i] - s2[inc-1]);
}
//s1 -= a[inc]+scade1;
//s2 -= b[inc]+scade2;
++inc, ++sf;
//s1 += a[sf];
//s2 += b[sf];
}
}
int main()
{
freopen("secv3.in", "r", stdin);
freopen("secv3.out", "w", stdout);
read();
solve();
printf("%.2lf\n", max);
fclose(stdin);
fclose(stdout);
return 0;
}