Cod sursa(job #507855)

Utilizator R.A.RFMI Romila Remus Arthur R.A.R Data 6 decembrie 2010 23:00:13
Problema Secventa 3 Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#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()]);
        while(i-Q.front()+1>U)Q.pop();
    }
    out<<maxim;
    return 0;
}