Cod sursa(job #1375023)

Utilizator HDT_TibiHudema Dumitru Tiberiu HDT_Tibi Data 5 martie 2015 11:47:03
Problema Secventa 3 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
using namespace std;

ifstream fin("secv3.in");
ofstream fout("secv3.out");

int a[30001],b[30001],s1[30001],s2[30001],n,k,u,x1,x2;
double maxi;

int main()
{
    int i;
    fin>>n>>k>>u;
    for(i=1; i<=n; i++) fin>>a[i];
    for(i=1; i<=n; i++) fin>>b[i];

    for(i=1; i<=k; i++)
    {
        x1+=a[i];
        x2+=b[i];
    }
    maxi=x1/float(x2);
    s1[1]=x1;
    s2[1]=x2;
   // fout<<maxi<<" ";
    for(i=k+1; i<=n; i++)
    {
        s1[i-k+1]=s1[i-k]+a[i]-a[i-k];
        s2[i-k+1]=s2[i-k]+b[i]-b[i-k];
        //fout<<s1[i-k]<<" "<<s2[i-k]<<" "<<maxi<<endl;
        if(maxi< s1[i-k+1]/float(s2[i-k+1]) )maxi=s1[i-k+1]/float(s2[i-k+1]);
    }

   while(k<=u)
    {
        for(i=1; i<=n-k+1; i++)
        {
            s1[i]+=a[i+k-1];
            s2[i]+=b[i+k-1];
            if(maxi<s1[i-k]/float(s2[i-k]))maxi=s1[i-k]/float(s2[i-k]);
        k++;
    }
    fout<<maxi;
    return 0;
}