Pagini recente » Cod sursa (job #2024188) | Cod sursa (job #1748749) | Cod sursa (job #1130745) | Cod sursa (job #2024186) | Cod sursa (job #3246585)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 5000
#define VAL (int)1e4
int dp[VAL+1],p[MAXN],c[MAXN];
int main() {
FILE *fin,*fout;
int n,s,i,k,max;
fin=fopen("rucsac.in","r");
fscanf(fin,"%d%d",&n,&s);
for(i=0; i<n; i++) {
fscanf(fin,"%d%d",&c[i],&p[i]);
}
for(i=0; i<n; i++) {
for(k=s; k>c[i]; k--) {
if(dp[k-c[i]]>0) {
if(dp[k-c[i]]+p[i]>dp[k]) {
dp[k]=dp[k-c[i]]+p[i];
}
}
}
if(dp[c[i]]<p[i]) {
dp[c[i]]=p[i];
}
}
fout=fopen("rucsac.out","w");
max=dp[0];
for(i=1; i<=s; i++) {
if(dp[i]>max) {
max=dp[i];
}
}
fprintf(fout,"%d",max);
fclose(fout);
return 0;
}