Pagini recente » Istoria paginii utilizator/serafimalex2001 | Monitorul de evaluare | Istoria paginii utilizator/filip.ripa | Istoria paginii utilizator/bogdanalexandru | Cod sursa (job #3036698)
#include <fstream>
#include <deque>
#include <iomanip>
using namespace std;
ifstream f("secv3.in");
ofstream g("secv3.out");
int v[30005];
int w[30005];
int n, l, u, x;
deque<int> q;
int s1, s2;
float pmax = -99999999;
float p;
int main()
{
f>>n>>l>>u;
for(int i = 1; i<=n; i++)
{
f>>x;
v[i] = v[i-1] + x;
}
for(int i = 1; i<=n; i++)
{
f>>x;
w[i] = w[i-1] + x;
}
l--;
u--;
for(int i = l+1; i<=n; i++)
{
while(!q.empty() && v[i-l] <= v[q.back()])
{
q.pop_back();
}
q.push_back(i-l);
if(q.back() - q.front() == u-l+1)
{
q.pop_front();
}
s1 = v[i] - v[q.front()];
s2 = w[i] - w[q.front()];
p = float(s1) / float(s2);
pmax = max(pmax, p);
}
g<<setprecision(2)<<fixed<<pmax;
return 0;
}