Cod sursa(job #803667)

Utilizator KaLoo1992Andrei Madalin KaLoo1992 Data 27 octombrie 2012 23:49:09
Problema Secventa 3 Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<stdlib.h>
#include<stdio.h>
#include<vector>
using namespace std;

void initializare(vector< vector<double> > &temp, int N, int U){
	
	for (int i = 0; i <= N; i++){
		vector<double> a;
		for (int j = 0; j <= U; j++){
			a.push_back(0);
		}
		temp.push_back(a);
	}
}
int main(){
	FILE *in = fopen("secv3.in", "r");
	FILE *out = fopen("secv3.out", "w");

	vector<double> COST, TIMP;
	vector< vector<double> > cost, timp;
	int L,U,N, temp,end;
	double max = 0, t = 0;

	fscanf(in, "%d", &N);
	fscanf(in, "%d", &L);              
	fscanf(in, "%d", &U);

	for (int i = 0; i < N; i++){
		fscanf(in, "%d", &temp);
		COST.push_back((double)temp);
	}

	for (int i = 0; i < N; i++){
		fscanf(in, "%d", &temp);
		TIMP.push_back((double)temp);
	}

	
	initializare(cost, N, U);
	for (int i = 1; i <= N; i++){
		if(U % 2) end = U; else end = U-1;
		for (int j = 1; j <= end; j++){
			cost[i][j] = cost[i][j-1] + COST[i+j-2];
		}	
	}

	
	initializare(timp, N, U);
	for (int i = 1; i <= N; i++){
		if(U % 2) end = U; else end = U-1;
		for (int j = 1; j <= end; j++){
			timp[i][j] = timp[i][j-1] + TIMP[i+j-2];
		}	
	}

	for(int i = 1; i <= N; i++){
		for (int j = L; j <= U; j++){
			t = cost[i][j] / timp[i][j];
			if(t > max)
				max = t;
		}	
	}

	fprintf(out, "%d", max);
	fprintf(out, "%.2f\n", max);

	return 0;
}