Cod sursa(job #2456888)

Utilizator Neri-kunNeri-kun Neri-kun Data 15 septembrie 2019 19:22:50
Problema Secventa 3 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.3 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef struct Sequence {
	int current_cost;
	int current_time;
	float current_ratio;
	float max_ratio;
	int* cost;
	int* time;

}Sequence;
FILE* f = fopen("secv3.in", "r");
FILE* g = fopen("secv3.out", "w");
int main() {
	int N, U, L;
	int starting_point;
	Sequence seq;
	fscanf(f, "%d %d %d", &N, &L, &U);
	seq.cost = new int[N];
	seq.time = new int[N];
	for (int i = 0; i < N; i++)
		fscanf(f, "%d", &seq.cost[i]);
	for (int i = 0; i < N; i++)
		fscanf(f, "%d", &seq.time[i]);
	for (int j = L; j <= U; j++) {
		seq.current_ratio = 0.00f;
		starting_point = 0;
		seq.current_cost = 0;
		seq.current_time = 0;
		for (int i = 0; i < j; i++) {
			seq.current_cost += seq.cost[i];
			seq.current_time += seq.time[i];
		}
		seq.current_ratio = (float)(seq.current_cost)/ float(seq.current_time);
		seq.max_ratio = max( seq.current_ratio,seq.max_ratio);
		for (int i = j; i < N; i++) {
			seq.current_cost += (seq.cost[i] - seq.cost[starting_point]);
			seq.current_time += (seq.time[i] - seq.time[starting_point]);
			seq.current_ratio = (float)(seq.current_cost) / (float)(seq.current_time);
			seq.max_ratio = max(seq.current_ratio, seq.max_ratio);
			starting_point++;
		}
	}
	fprintf(g, "%0.2f", seq.max_ratio);
	return 0;
}