Pagini recente » Cod sursa (job #2223791) | Cod sursa (job #1583923) | Cod sursa (job #303725) | Cod sursa (job #2211316) | Cod sursa (job #750384)
Cod sursa(job #750384)
# 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;
void citire()
{
f >> N >> G;
for ( int i = 1 ; i <= N ; i++ )
f >> E[ i ] >> C[ i ];
}
void rezolva()
{
int i, j, ok = 0;
for ( i = 1 ; i <= N ; i++ )
for ( j = 0 ; j <= G + G ; j++ )
{
A[ i ][ j ] = inf;
if ( C[ i ] <= j )
A[ i ][ j ] = max( A[ i - 1 ][ j ], A[ i - 1 ][ j - C[ i ] ] + E[ i ] );
else
A[ i ][ j ] = A[ i - 1 ][ j ];
}
for ( i = 0 ; i <= G + G ; i++ )
if ( A[ N ][ i ] >= G )
{
g << i << "\n";
ok = 1;
break;
}
if ( ok == 0 )
g << - 1 << "\n" ;
//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();
// afisare();
return 0;
}