Pagini recente » Cod sursa (job #1201645) | Cod sursa (job #2094192) | Cod sursa (job #3210018) | Cod sursa (job #667536) | Cod sursa (job #110914)
Cod sursa(job #110914)
#include <cstdio>
#define POS_BUN 1
#define POS_REA -1
#define NMax 100000
int n, max, cost[NMax], ener[NMax];
int a[NMax], b[NMax], pos[NMax];
int main()
{
int i, j, mx, ex;
FILE *fin = fopen( "energii.in", "rt" );
fscanf( fin, "%d %d", &n, &max );
for (i=0; i<n; i++)
fscanf( fin, "%d %d", &ener[i], &cost[i] );
a[n-1] = cost[n-1];
b[n-1] = ener[n-1];
if ( b[n-1] == max )
pos[n-1] = n-1;
else
pos[n-1] = POS_REA;
for (i=n-2; i>=0; i--)
{
mx = ex = 0;
for (j=i+1; j<n; j++)
if ( ener[i] + b[j] <= max )
if ( a[j] > mx || ener[i] + b[j] == max )
{
mx = a[j];
ex = b[j];
}
a[i] = cost[i] + mx;
b[i] = ener[i] + ex;
if ( b[i] == max )
pos[i] = i;
else pos[i] = POS_REA;
}
FILE *fout = fopen( "energii.out", "wt" );
mx = 100000;
for (i=0; i<n; i++)
if ( pos[i] != POS_REA )
if ( a[i] < mx )
mx = a[i];
fprintf( fout, "%d", mx );
fprintf( fout, "\n" );
return 0;
}