Pagini recente » Cod sursa (job #1295393) | Cod sursa (job #2901280) | Cod sursa (job #2052135) | Cod sursa (job #1997257) | Cod sursa (job #1848258)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX=5000,GMAX=10000;
int w[NMAX+5],p[NMAX+5],n,g,dp[2][GMAX+5],k=0;
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&g);
for(int i=1;i<=n;i++) {
scanf("%d%d\n",&w[i],&p[i]);}
for(int i=1;i<=n;i++,k=1-k) {
for(int cw=0;cw<=g;++cw) {
dp[1-k][cw]=dp[k][cw];
if(w[i]<=cw)
dp[1-k][cw]=max(dp[1-k][cw],dp[k][cw-w[i]]+p[i]);}}
printf("%d",dp[k][g]);
return 0;}