Pagini recente » Cod sursa (job #2368324) | Cod sursa (job #11696) | Cod sursa (job #2725087) | Cod sursa (job #2148186) | Cod sursa (job #1120072)
#include <cstdio>
#include <algorithm>
#define dm 5001
#define gm 10001
using namespace std;
int w[dm], p[dm], gf[gm], n, g;
void read(){
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%i%i",&n,&g);
for(int i=1;i<=n;i++) scanf("%i%i",&w[i],&p[i]);
}
void solve(){
for(int i=1;i<=n;i++)
for(int j=g-w[i];j>=0;j--)
if(gf[j+w[i]]<gf[j]+p[i])
gf[j+w[i]]=gf[j]+p[i];
}
int main()
{
read();solve();
printf("%i\n", *max_element(gf+1, gf+g+1));
return 0;
}