Pagini recente » Cod sursa (job #454830) | Cod sursa (job #2896516) | Cod sursa (job #1778708) | Cod sursa (job #1098162) | Cod sursa (job #1891620)
#include<cstdio>
using namespace std;
const int NMAX=10005;
const int VMAX=205;
int greutate[NMAX*10],profit[VMAX],castig[NMAX/10+5][NMAX],f[NMAX/10+5][NMAX];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g,i,j;
scanf("%d%d", &n, &g);
for(i=1;i<=n;i++)
scanf("%d%d", &greutate[i], &profit[i]);
///castig[n][g]=castigul maxim
for(i=1;i<=n;i++){
for(j=1;j<=g;j++){
if(greutate[i]<=j){
if(profit[i]+castig[i-1][j-greutate[i]]>castig[i-1][j]){
castig[i][j]=profit[i]+castig[i-1][j-greutate[i]];
f[i][j]=i;
}
else{
castig[i][j]=castig[i-1][j];
f[i][j]=f[i-1][j];
}
}
else{
castig[i][j]=castig[i-1][j];
f[i][j]=f[i-1][j];
}
}
}
printf("%d", castig[n][g]);
return 0;
}