Cod sursa(job #662002)

Utilizator galbenugalbenu dorin galbenu Data 15 ianuarie 2012 17:58:58
Problema Secventa 3 Scor 50
Compilator cpp Status done
Runda winner16 Marime 1.09 kb
#include<fstream>
#include<cstring>
#include<iomanip>
#include<ctime>
#include<cstdlib>
#define lmax 30003
using namespace std;
ifstream f("secv3.in",fstream::in);
ofstream g("secv3.out",fstream::out);
short int N,L,U;
double maxim=0;
typedef struct
{
    double cost,timp;
}element;
element v[lmax];
void read()
{
    short int i;
    f>>N>>L>>U;
    for(i=1;i<=N;i++)
    f>>v[i].cost;
    for(i=1;i<=N;i++)
    f>>v[i].timp;
    for(i=2;i<=N;i++)
    v[i].cost+=v[i-1].cost,v[i].timp+=v[i-1].timp;
}
void solve()
{
    short int i,j;
    for(i=L;i<=N;i++)
    { if(i<U)
     {
         for(j=0;j<=i-L;j++)
          if( ((v[i].cost-v[j].cost)/(v[i].timp-v[j].timp))>maxim)
          maxim=(v[i].cost-v[j].cost)/(v[i].timp-v[j].timp);
     }
     else
     {
         for(j=i-U;j<=i-L;j++)
         if( ((v[i].cost-v[j].cost)/(v[i].timp-v[j].timp))>maxim)
          maxim=(v[i].cost-v[j].cost)/(v[i].timp-v[j].timp);
     }
     if(clock()>220)
     i=N+3;
    }
}
int main()
{
    read();
    solve();
    g<<maxim;
    f.close();
    g.close();
    return 0;
}