Pagini recente » Cod sursa (job #1163158) | Cod sursa (job #38265) | Cod sursa (job #807771) | Cod sursa (job #963698) | Cod sursa (job #773272)
Cod sursa(job #773272)
# include <fstream>
# include <cstring>
# include <algorithm>
# define dim1 10001
# define dim2 1001
# define dim3 5001
# define inf 999999
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int E[ dim1 ], C[ dim1 ];
int A[ dim2 + dim2 ][ dim3 ];
int N, G, energie ;
void citire()
{
f >> N >> G;
for ( int i = 1 ; i <= N ; i++ )
{
f >> E[ i ] >> C[ i ];
}
for ( int i = 0 ; i <= G ; i++ )
A[ 0 ][ i ] = inf;
A[ 0 ][ 0 ] = 0;
}
void rezolva()
{
int i, j, ok = 0;
for ( i = 1 ; i <= N ; i++ )
for ( j = 0 ; j <= G ; j++ )
{
//A[ i ][ j ] = inf;
A[ i ][ j ] = A[ i - 1 ][ j ];
if ( E[ i ] <= j )
A[ i ][ j ] = min( A[ i ][ j ], A[ i - 1 ][ j - E[ i ] ] + C[ i ] );
// else
if ( E[ i ] > j )
A[ i ][ j ] = min( A[ i ][ j ], C[ i ] );
}
if ( A[ N ][ G ] == inf )
g << -1 << "\n";
else
g << A[ N ][ G ];
}
void afisare()
{
int i, j;
for ( i = 1 ; i <= N ; i++ )
{
for ( j = 0 ; j <= G + G ; j++ )
g << A[ i ][ j ] << " ";
g << "\n";
}
}
int main()
{
citire();
rezolva();
return 0;
}