Cod sursa(job #2004480)

Utilizator richieYRichie Yeung richieY Data 26 iulie 2017 00:48:49
Problema Secventa 3 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>

using namespace std;

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

int main() {
    int l, u, n;
    fin >> n >> l >> u;
    vector<int> t(n);
    vector<int> b(n);
    for (int i = 0; i < n; i += 1) {
        fin >> t[i];
    }
    
    for (int i = 0; i < n; i += 1) {
        fin >> b[i];
    }
    
    int tSum = 0;
    int bSum = 0;
    double ans = 0;
    for (int i = 0; i < l; i += 1) {
        tSum += t[i];
        bSum += b[i];
    }
    
    ans = (double) tSum / bSum;
    // cerr << ans << endl;    
    for (int i = 0; i < (n-l+1); i += 1) {
        
        int tInc = 0;
        int bInc = 0;
        for (int j = 0; j < (u-l) && i+j+l < n; j += 1) {
            ans = max(ans, (double) (tSum+tInc)/(bSum+bInc));
            // cerr << fixed << setprecision(2) << (double) (tSum+tInc)/(bSum+bInc) << '\n';
            tInc += t[i+l+j];
            bInc += b[i+l+j];
        }
        ans = max(ans, (double) (tSum+tInc)/(bSum+bInc));
        // cerr << fixed << setprecision(2) << (double) (tSum+tInc)/(bSum+bInc) << '\n';
        tSum -= t[i];
        bSum -= b[i];
        tSum += t[i+l];
        bSum += b[i+l];
    }
    
    fout << fixed << setprecision(2) << ans;
    
    return 0;
}