Cod sursa(job #2133819)

Utilizator sabinandreiBocan Sabin Andrei sabinandrei Data 17 februarie 2018 12:46:42
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <iomanip>
#include <fstream>
 
using namespace std;
 
ifstream in("secv3.in");
ofstream out("secv3.out");
 
const int NMAX = 30000;
 
int n, l, u;
int temp[1 + NMAX];
int cost[1 + NMAX];
double r1, r2;
 
int main()
{
  in >> n >> l >> u;
 
  for(int i = 1; i <= n; i++) {
    in >> cost[i];
    cost[i] += cost[i - 1];
  }
 
  for(int i = 1; i <= n; i++) {
    in >> temp[i];
    temp[i] += temp[i - 1];
  }
 
  double res = 1.0L * cost[l] / temp[l];
  int i, j;
  j = 1;
 
  for(i = l + 1; i <= n; i++) {
    if(i == u + l)
      j++;
    r1 = 1.0L * (cost[i] - cost[j - 1]) / (1.0L * (temp[i] - temp[j - 1]));
    r2 = 1.0L * (cost[i] - cost[i - l]) / (1.0L * (temp[i] - temp[i - l]));
 
    if(r1 < r2) {
      r1 = r2;
      j = i - l + 1;
    }
    res = max(res, r1);
  }
 
  out << setprecision(3) << fixed;
  out << res << '\n';
 
  in.close();
  out.close();
  return 0;
}