Cod sursa(job #3212676)

Utilizator nicushor21Pirlog Marian Nicolae nicushor21 Data 12 martie 2024 08:38:42
Problema Secventa 3 Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iomanip>
#define MAX 30000
using namespace std;
int n,l,u,v1[MAX+1],v2[MAX+1],i,j,s1,s2;
double maxim=0;
int main()
{
    ifstream fin("secv3.in");
    ofstream fout("secv3.out");
    fin>>n>>l>>u;
    for(i=1;i<=n;i++){
        fin>>v1[i];
        v1[i]+=v1[i-1];
    }
    for(i=1;i<=n;i++){
        fin>>v2[i];
        v2[i]+=v2[i-1];
    }
    for(i=1;i<=n-l+1;i++){
        s1=v1[i+l-1]-v1[i-1];
        s2=v2[i+l-1]-v2[i-1];
        j=i+l;
        while(j<=n&&(s1+v1[j]-v1[j-1])*s2>s1*(s2+v2[j]-v2[j-1])&&j-i+1<=u){
            s1+=v1[j]-v1[j-1];
            s2+=v2[j]-v2[j-1];
            j++;
        }
        if((double)s1/s2>maxim&&j<=n+1){
            maxim=(double)s1/s2;
        }
    }
    fout<<setprecision(2)<<maxim;
    return 0;
}