Pagini recente » Cod sursa (job #464086) | Cod sursa (job #2896526) | Cod sursa (job #966378) | Cod sursa (job #2822272) | Cod sursa (job #1891673)
#include<cstdio>
using namespace std;
const int NMAX=5005;
int greutate[NMAX],profit[NMAX],castig[5][NMAX*2];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,i,j,lin=2;
scanf("%d%d", &n, &g);
for(i=1;i<=n;i++)
scanf("%d%d", &greutate[i], &profit[i]);
for(i=1;i<=n;i++){
for(j=0;j<=g;j++){
castig[3-lin][j]=castig[lin][j];
if(greutate[i]<=j)
if(castig[3-lin][j]<castig[lin][j-greutate[i]]+profit[i])
castig[3-lin][j]=castig[lin][j-greutate[i]]+profit[i];
}
lin=3-lin;
}
printf("%d", castig[lin][g]);
return 0;
}