Cod sursa(job #569861)

Utilizator coderninuHasna Robert coderninu Data 2 aprilie 2011 12:14:10
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda preselectie_acm_unibuc Marime 0.83 kb
#include <cstdio>
#define Nmax 30001

using namespace std;

class Nod {
public:
	int S, J, poz;
} deq[Nmax];

int N, L, U, S[Nmax], J[Nmax], st, dr;
double rez = 0;

int main() {
	freopen("secv3.in", "r", stdin);
	freopen("secv3.out", "w", stdout);
	
	scanf("%d %d %d\n", &N, &L, &U);
	for (int i = 1; i <= N; ++i) scanf("%d", S + i);
	for (int i = 1; i <= N; ++i) scanf("%d", J + i);
	
	for (int i = 2; i <= N; ++i) {
		S[i] += S[i-1];
		J[i] += J[i-1];
	}
	
	st = 1;
	for (dr = L; dr <= N; ++dr) {
		if (dr - st + 1 > U) ++st;
		
		while (dr - st + 1 >= L) {
			double temp = (double)(S[dr] - S[st - 1]) / (J[dr] - J[st - 1]);
			if (temp > rez)
				rez = temp;
			if (dr - st >= L && temp < ((double)(S[dr] - S[st]))/(J[dr] - J[st])) ++st;
			else break;
		}
	}
	
	printf("%.2lf", rez);
	return 0;
}