Cod sursa(job #2173689)

Utilizator matei8787Matei Dobrea matei8787 Data 15 martie 2018 23:37:39
Problema Secventa 3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 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.0 * cost[l] / temp[l];
  int i, j;
  j = 1;

  for(i = l + 1; i <= n; i++) {
    if(i == u + l)
      j++;
    r1 = 1.0 * (cost[i] - cost[j - 1]) / (1.0 * (temp[i] - temp[j - 1]));
    r2 = 1.0 * (cost[i] - cost[i - l]) / (1.0 * (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;
}