Pagini recente » Cod sursa (job #829064) | Cod sursa (job #3256892) | Cod sursa (job #2153043) | Cod sursa (job #941391) | Cod sursa (job #113074)
Cod sursa(job #113074)
#include <stdio.h>
#define NMax 30000
int n, min, max;
int secv[NMax], timp[NMax], lg[NMax];
double secvm[NMax], timpm[NMax];
void citire();
void pd();
int main()
{
citire();
pd();
return 0 ;
}
void pd()
{
int i;
double maxx = -1;
secvm[n-1] = secv[n-1];
timpm[n-1] = timp[n-1];
lg[n-1] = 1;
for (i=n-2; i>=0; i--)
{
if ( (secv[i]+secvm[i+1]) / (timp[i]+timpm[i+1]) > (secv[i] / timp[i]) )
{
secvm[i] = secv[i] + secvm[i+1];
timpm[i] = timp[i] + timpm[i+1];
lg[i] = lg[i+1] + 1;
}
else
{
secvm[i] = secv[i];
timpm[i] = timp[i];
lg[i] = 1;
}
}
for (i=0; i<n; i++)
if ( (secvm[i] / timpm[i]) > maxx && lg[i] >= min && lg[i] <= max )
maxx = secvm[i]/timpm[i];
FILE *g = fopen( "secv3.out", "wt" );
fprintf( g, "%.2f\n", maxx );
fclose( g );
}
void citire()
{
int i;
FILE *f = fopen( "secv3.in", "rt" );
fscanf( f, "%d %d %d", &n, &min, &max );
for (i=0; i<n; i++)
fscanf( f, "%d", &secv[i] );
for (i=0; i<n; i++)
fscanf( f, "%d", &timp[i] );
fclose( f );
}