Pagini recente » Cod sursa (job #319174) | Cod sursa (job #1367353) | Cod sursa (job #3219613) | Cod sursa (job #1552530) | Cod sursa (job #1957554)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005];
int main()
{
freopen("rucsac.in" , "r" , stdin);
freopen("rucsac.out" , "w" , stdout);
int n , G , last , g , v , maxim , i , j;
scanf("%d%d" , &n , &G);
d[0] = 0;
for(i = 1 ; i <= G ; i ++)
d[i] = -1;
last = 0;
for(i = 1 ; i <= n ; i ++)
{
scanf("%d%d" , &g , &v);
for(j = last ; j >= 0 ; j --)
if(j + g <= G)
{
d[j + g] = max(d[j + g] , d[j] + v);
if(j + g > last)
last = j + g;
}
}
maxim = 0;
for(i = 1 ; i <= G ; i ++)
if(d[i] > maxim)
maxim = d[i];
printf("%d\n" , maxim);
return 0;
}