Pagini recente » Cod sursa (job #134278) | Cod sursa (job #2880070) | Cod sursa (job #2420119) | Cod sursa (job #487567) | Cod sursa (job #2314414)
#include <cstdio>
#include <cstring>
#include <iostream>
struct Item{
int weight,price;
};
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,g;
scanf("%d %d",&n,&g);
Item items[n+1];
for(int i=1;i<=n;++i){
scanf("%d %d",&items[i].weight,&items[i].price);
}
int best[g+1];
memset(best,-1, sizeof(best));
for(int i=1;i<=n;++i){
for(int j= g- items[i].weight;j>=0;--j){
if(best[j+items[i].weight]<best[j]+items[i].price){
best[j+items[i].weight]=best[j] +items[i].price;
}
}
}
printf("%d",best[g]);
return 0;
}