Pagini recente » Cod sursa (job #1738714) | Cod sursa (job #1703569) | Cod sursa (job #2008465) | Profil Roby_darkstar | Cod sursa (job #1723645)
#include <cstdio>
#define MAXG 10000
int dp[MAXG+1];
char good[MAXG+1];
int main(){
FILE*fi,*fout;
int N,G,W,P,i,j,max;
fi=fopen("rucsac.in" ,"r");
fout=fopen("rucsac.out" ,"w");
fscanf(fi,"%d%d" ,&N,&G);
good[0]=1;
for(i=1;i<=N;i++){
fscanf(fi,"%d%d" ,&W,&P);
for(j=G;j>=W;j--)
if(dp[j]<dp[j-W]+P&&good[j-W]==1){
dp[j]=dp[j-W]+P;
good[j]=1;
}
}
for(i=1;i<=G;i++)
if(dp[i]>max)
max=dp[i];
fprintf(fout,"%d" ,max);
fclose(fi);
fclose(fout);
return 0;
}