Pagini recente » Cod sursa (job #930320) | Cod sursa (job #2897988) | Cod sursa (job #1056216) | Cod sursa (job #2818037) | Cod sursa (job #1718534)
/********************
Created by Sburly
********************/
#include <fstream>
using namespace std;
struct secv{
int length;
int d;
int p;
double val;
bool b = true;
};
unsigned int l,u,n;
unsigned int a[30000];
unsigned int b[30000];
secv v[30000];
secv ks(int i);
inline double norm(double a);
int main()
{
ifstream f("secv3.in");
ofstream g("secv3.out");
f >> n >> l >> u;
for(unsigned int i = 0 ; i < n; i++)
{
f >> a[i];
}
for(unsigned int i = 0 ; i < n; i++)
{
f >> b[i];
}
double mx = -1;
for(unsigned int i = 0 ; i < n; i++)
{
secv temp = ks(i);
if(l <= temp.length && temp.length <= u)
{
mx = max(temp.val, mx);
}
}
g << norm(mx);
return 0;
}
secv ks(int i)
{
if(i == 0)
{
if(v[i].b)
{
v[i].b = false;
v[i].d= a[i];
v[i].p= b[i];
v[i].val = (double) a[i] / b[i];
v[i].length = 1;
}
return v[i];
}
else
{
if(v[i].b)
{
v[i].b = false;
double temp = (double) a[i] / b[i];
if(temp > v[i-1].val)
{
v[i].val = temp;
v[i].d = a[i];
v[i].p = b[i];
v[i].length = 1;
}
else
{
v[i].d = v[i-1].d + a[i];
v[i].p = v[i-1].p + b[i];
v[i].val = (double) v[i].d / v[i].p;
v[i].length = v[i-1].length+1;
}
}
return v[i];
}
}
inline double norm(double a)
{
a *= 100;
int b = a;
a = (float) b/100;
return a;
}