Pagini recente » Cod sursa (job #1457420) | Cod sursa (job #2879993) | Cod sursa (job #824634) | Cod sursa (job #1420456) | Cod sursa (job #1985284)
#include <iostream>
#include <stdio.h>
using namespace std;
struct gg{int greutate, pret;};
gg v[5001];
int d[10001];
int main() {
FILE *fin, *fout;
int max, n, greut, i, j;
fin = fopen("rucsac.in","r");
fout = fopen("rucsac.out","w");
fscanf(fin,"%d%d", &n, &greut);
for(i=1;i<=n;i++){
fscanf(fin,"%d%d", &v[i].greutate, &v[i].pret);
}
for(i=1;i<=n;i++){
if(d[v[i].greutate]<v[i].pret)
d[v[i].greutate]=v[i].pret;
for(j=greut;j>=1;j--){
if(d[j-v[i].greutate]!=0&&d[j-v[i].greutate]+v[i].pret)
d[j]=d[j-v[i].greutate]+v[i].pret;
}
}
max=0;
for(j=greut;j>=1;j--){
if(d[j]>max)
max=d[j];
}
fprintf(fout,"%d", max);
fclose(fin);
fclose(fout);
return 0;
}