Pagini recente » Cod sursa (job #1464912) | Cod sursa (job #499129) | Cod sursa (job #1220080) | Cod sursa (job #142948) | Cod sursa (job #803679)
Cod sursa(job #803679)
#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);
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++){
cost[i][j] = cost[i][j-1] + COST[i+j-2];
timp[i][j] = timp[i][j-1] + TIMP[i+j-2];
if(j >= L && j <= end ){
t = cost[i][j] / timp[i][j];
if(t > max)
max = t;
}
}
}
fprintf(out, "%.2f\n", max);
return 0;
}