Pagini recente » Cod sursa (job #979134) | Cod sursa (job #3188542) | Cod sursa (job #722138) | Cod sursa (job #2687489) | Cod sursa (job #795043)
Cod sursa(job #795043)
#include <stdio.h>
int n,gMax;
int P[5005],G[5005];
void intersch(int &i1,int &i2){
int aux=i1;
i1=i2;
i2=aux;
}
int max(int a,int b){return a>b?a:b;}
int M[2][10005];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d %d",&n,&gMax);
for(int i=1;i<=n;i++){
scanf("%d %d",&G[i],&P[i]);
}
int i1=1,i0=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=gMax;j++){
if(j>=G[i])
M[i1][j]=max( M[i0][j] ,M[i0][j-G[i]]+P[i] );
else
M[i1][j]=M[i0][j];
}
intersch(i1,i0);
}
printf("%d",M[i0][gMax]);
return 0;
}