Pagini recente » Cod sursa (job #2295416) | Cod sursa (job #1461303) | Cod sursa (job #2975713) | Cod sursa (job #47937) | Cod sursa (job #977273)
Cod sursa(job #977273)
#include<stdio.h>
#include<string.h>
#define dim 1005
#define dim2 5005
#define oo 0x3f3f3f3f
using namespace std;
int n, EMax, e[ dim ], c[ dim ], CMax[ dim2 ], i, j, MIN = oo;
void read()
{
FILE *f = fopen("energii.in","r");
fscanf( f,"%d %d", &n, &EMax);
memset(CMax,oo,sizeof(CMax));
CMax[0] = 0;
for( i = 1; i <= n; ++i )
fscanf( f,"%d %d", &e[ i ], &c[ i ]);
fclose( f );
}
void solve()
{
for( i = 1; i <= n; ++i )
{
for( j = EMax ; j >= 0; --j )
if( CMax[ j + e[ i ] ] > CMax[ j ] + c[ i ] )
{
CMax[ j + e[ i ] ] = CMax[ j ] + c[ i ];
if( j + e[ i ] >= EMax && CMax[ j + e[ i ] ] < MIN )
MIN = CMax[ j + e[ i ] ];
}
}
}
void print()
{
FILE *g = fopen("energii.out","w");
if( MIN == oo )
fprintf( g,"-1\n" );
else
fprintf( g,"%d\n", MIN );
fclose( g );
}
int main()
{
read();
solve();
print();
return 0;
}