Cod sursa(job #2061418)

Utilizator GhiciCineRazvan Dumitriu GhiciCine Data 9 noiembrie 2017 11:06:11
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#define MAXN 30000

using namespace std;

double cost[MAXN + 5], timp[MAXN + 5];

double maxim( double a, double b ) {
  return a > b ? a : b;
}

int main( ) {
  int n, l, u, i, j;
  double max, rez1, rez2;

  freopen( "secv3.in", "r", stdin );
  freopen( "secv3.out", "w", stdout );

  scanf( "%d%d%d", &n, &l, &u );

  for( i = 1; i <= n; i++ ) {
    scanf( "%lf", &cost[i] );
    cost[i] += cost[i - 1];
  }
  for( i = 1; i <= n; i++ ) {
    scanf( "%lf", &timp[i] );
    timp[i] += timp[i - 1];
  }
  max = cost[l] / timp[l];
  j = 1;
  for( i = l + 1; i <= n; i++ ) {
    if( i - l == u )
      j++;
    rez1 = ( cost[i] - cost[j - 1] ) / ( timp[i] - timp[j - 1] );
    rez2 = ( cost[i] - cost[i - l] ) / ( timp[i] - timp[i - l] );
    if( rez1 < rez2 ) {
      rez1 = rez2;
      j = i - l + 1;
    }
    max = maxim( max, rez1 );
  }
  printf( "%.2lf", max );
  return 0;
}