Pagini recente » Cod sursa (job #2924267) | Cod sursa (job #646213) | Rating Willy Fog (roadtojedi) | Cod sursa (job #2897758) | Cod sursa (job #1727959)
#include <cstdio>
#define NMax 5005
#define NMax2 10005
int CMax[NMax2];
int W[NMax];
int P[NMax];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int i,j,N,G,ans;
scanf("%d %d",&N,&G);
for( i = 1; i <= N; ++i ) scanf("%d %d",&W[i],&P[i]);
for( i = 1; i <= G; ++i ) CMax[i] = -1;
for( i = 1; i <= N; ++i )
for( j = G; j >= 0; --j )
if( W[i] <= j && CMax[ j - W[i] ] != -1 )
if( P[i] + CMax[ j - W[i] ] > CMax[j] )
CMax[j] = P[i] + CMax[ j - W[i] ];
for( ans = 0, i = 0; i <= G; ++i )
if( ans < CMax[i] ) ans = CMax[i];
printf("%d\n",ans);
return 0;
}