Pagini recente » Cod sursa (job #893938) | Cod sursa (job #2889446) | Cod sursa (job #614816) | Cod sursa (job #1647337) | Cod sursa (job #2616658)
#include <stdio.h>
#include <stdlib.h>
FILE *fin , *fout;
int d[10000];
int main() {
fin=fopen("rucsac.in","r");
fout=fopen("rucsac.out","w");
int n,g,l=0,i,j,pmax=0,w,p;
fscanf(fin,"%d%d",&n,&g);
for(i=1;i<=g;i++) {
d[i]=-1;
}
for(i=1;i<=n;i++) {
fscanf(fin,"%d%d",&w,&p);
for(j=l;j>=0;j--) {
if(j+w<=g) {
if(d[j]!=-1) {
if(d[j]+p>d[j+w]) {
d[j+w]=d[j]+p;
if(j+w>l) {
l=j+w;
}
}
}
}
}
}
for(i=g;i>=0;i--) {
if(d[i]>pmax) {
pmax=d[i];
}
}
fprintf(fout,"%d\n",pmax);
fclose(fin);
fclose(fout);
return 0;
}