Pagini recente » Cod sursa (job #1665026) | Cod sursa (job #1233068) | Cod sursa (job #1617773) | Cod sursa (job #2104224) | Cod sursa (job #1767780)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10005];
int main()
{
int g, n, i, w, p, j, profmax = 0, count = 0, poz = 0, val = 0;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d", &n, &g);
for(i = 1;i <= g; ++i){
d[i] = -1;
}
count = 0;
for(j = 1;j <= n; ++j){
scanf("%d%d", &w, &p);
for(i = count; i >= 0; --i){
poz = i + w;
if(poz <= g && d[i] != -1){
val = d[i] + p;
if(d[poz] < val){
d[poz] = val;
count = max(poz , count);
}
}
}
}
for(i = 1;i <= g; ++i){
profmax = max(profmax , d[i]);
}
printf("%d\n",profmax);
return 0;
}