Pagini recente » Cod sursa (job #1057052) | Cod sursa (job #970055) | Cod sursa (job #1433153) | Cod sursa (job #1853054) | Cod sursa (job #642237)
Cod sursa(job #642237)
#include<cstdio>
const int INF = -2000 ;
int g[5005] , p[5005 ] ;
int sol [ 10005 ] ;
int main ( )
{
freopen ( "rucsac.in" , "r" , stdin ) ;
freopen ( "rucsac.out" , "w" , stdout ) ;
int n , G ;
int i , j ;
scanf ( "%d%d", & n , & G ) ;
for ( i = 1 ; i <= n ; ++ i )
{
scanf ( "%d%d" , &g[i] , &p[i] ) ;
}
sol[0] = 0 ;
for ( i = 1 ; i <= G ; ++ i )
sol[i] = INF ;
for ( i = 1 ; i <= n ; ++ i )
{
for ( j = G - g[i] ; j >= 0 ; --j )
if ( sol [ j+g[i]] < sol[ j ] + p[i] )
sol [ j+g[i] ] = sol [ j ] + p[i] ;
}
int max = INF , maxi ;
for ( i = 0 ; i <= G ; ++ i )
if ( sol[i] > max )
{
max = sol[i] ;
maxi = i ;
}
printf ( "%d" , maxi ) ;
return 0 ;
}