Pagini recente » Cod sursa (job #2688666) | Cod sursa (job #3140934) | Cod sursa (job #3229542) | Cod sursa (job #3267080) | Cod sursa (job #1193538)
#include <cstdio>
#include <vector>
using namespace std;
#define NMAX 10005
#define max(a,b) ((a>b) ? a : b)
int Cost[NMAX],N,G;
pair < int , int > O[NMAX];
int i,j,sol;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&N,&G);
for (i=1;i<=N;++i)
scanf("%d%d",&O[i].first,&O[i].second);
for (i=1;i<=N;++i)
for (j=G-O[i].first;j>=0;--j)
{
if (Cost[j+O[i].first]>=Cost[j]+O[i].second) continue;
Cost[j+O[i].first]=Cost[j]+O[i].second;
sol=max(sol,Cost[j+O[i].first]);
}
printf("%d\n",sol);
return 0;
}