Cod sursa(job #1732398)
| Utilizator | Data | 21 iulie 2016 16:10:18 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <stdio.h>
#define lim 100005
int sum[lim];
int main(){
FILE *fin,*fout;
fin=fopen("rucsac.in","r");
fout=fopen("rucsac.out","w");
int i,j,n,val,g,p,maxim=0;
fscanf(fin,"%d%d",&n,&val);
for(i=1;i<=n;i++){
fscanf(fin,"%d%d",&g,&p);
for(j=val-g;j>=0;j--)
if(sum[j+g]<sum[j]+p){
sum[j+g]=sum[j]+p;
if(sum[j+g]>maxim)
maxim=sum[j+g];
}
}
fprintf(fout,"%d",maxim);
fclose(fin);
fclose(fout);
return 0;
}
