Pagini recente » Cod sursa (job #1228196) | Cod sursa (job #2296545) | Cod sursa (job #520721) | Cod sursa (job #2887557) | Cod sursa (job #507852)
Cod sursa(job #507852)
#include <fstream>
#include <queue>
#define nmax 30002
using namespace std;
ifstream in("secv3.in");
ofstream out("secv3.out");
queue<int> Q;
int T[nmax],V[nmax],N,L,U,i;
int main()
{
in>>N>>L>>U;
long double maxim=0;
for(i=1;i<=N;i++)in>>V[i],V[i]+=V[i-1];
for(i=1;i<=N;i++)in>>T[i],T[i]+=T[i-1];
for(i=1;i<=L;i++)Q.push(i);
maxim = (double)V[L]/T[L];
for(i=L+1;i<=N;i++)
{
Q.push(i);
while((double)(V[i]-V[Q.front()])/(T[i]-T[Q.front()])<maxim&&i-Q.front()+1>=L)
Q.pop();
if(maxim<(double)(V[i]-V[Q.front()])/(T[i]-T[Q.front()]))
maxim = (double)(V[i]-V[Q.front()])/(T[i]-T[Q.front()]);
if(i-Q.front()+1>U)Q.pop();
}
out<<maxim;
return 0;
}