Pagini recente » Diferente pentru runda/racovita_ziua_nationala_11_12 intre reviziile 2 si 1 | Cod sursa (job #2880167) | Cod sursa (job #2937749) | Cod sursa (job #1731073) | Cod sursa (job #1470353)
#include <stdio.h>
#define NMAX 30005
#define SIZE 150005
int N, L, U;
short int cost[NMAX], time[NMAX];
int i, j, cost_sum[NMAX], time_sum[NMAX], S1, S2, s1, s2;
long long int a1, a2;
FILE *in, *out;
float rez;
void citire()
{
in = freopen("secv3.in", "r", stdin);
out = freopen("secv3.out", "w", stdout);
scanf("%d %d %d\n", &N, &L, &U);
for (i = 1; i <= N; i++)
{
scanf("%hd", &cost[i]);
/*
* cost_sum[i] = cost[1] + cost[2] + ... + cost[i]
* Obs. : cost_sum[i] - cost_sum[j] = cost[j+1] + ... + cost[i], ptr i >= j+1
*/
cost_sum[i] = cost_sum[i-1] + cost[i];
}
for (i = 1; i <= N; i++)
{
scanf("%hd", &time[i]);
time_sum[i] = time_sum[i-1] + time[i]; /* analog cost_sum[] */
}
}
int main()
{
citire();
S1 = 0;
S2 = 1;
i = L;
for (i = L; i <= U; i++) //i = seq len
for (j = i; j <= N; j++)
{
a1 = S1; a1 *= (s2 = time_sum[j]-time_sum[j-i]);
a2 = S2; a2 *= (s1 = cost_sum[j]-cost_sum[j-i]);
if (a1 < a2)
S1 = s1, S2 = s2;
}
printf("%.2f\n", (float)((float)S1)/((float)S2));
fclose(in);
fclose(out);
return 0;
}