Cod sursa(job #2079248)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 30 noiembrie 2017 20:35:30
Problema Secventa 3 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <set>
using namespace std;
ifstream fin("secv3.in");
ofstream fout("secv3.out");
int n,U,L,i,j,p1,p2;
double v[30005],t[30005],val,timp;
double mx,sv[30005],st[30005];
set<pair<double,int>>seet;
set<pair<double,int>>::iterator it;
pair<double,int>a;
int main()
{fin>>n>>U>>L;
 for(i=1;i<=n;i++)
    fin>>v[i];

 for(i=1;i<=n;i++)
    fin>>t[i];
 for(i=1;i<=n;i++)
    {sv[i]=sv[i-1]+v[i];
     st[i]=st[i-1]+t[i];
     p1=i-L;
     p2=i-U;
     if(i>U){
            if(i>L){
     a.first=sv[p1]/st[p1];
     a.second=p1;
     seet.erase(a);
                   }
     a.first=sv[p2]/st[p2];
     a.second=p2;
     seet.insert(a);
     it=seet.begin();
     a=*it;
     val=sv[i]-sv[a.second];
     timp=st[i]-st[a.second];
     mx=max(mx,val/timp);
            }
     else if(i==U) mx=sv[i]/st[i];
    }
 fout<<mx<<" ";
}