Pagini recente » Cod sursa (job #940551) | Borderou de evaluare (job #1511207) | Cod sursa (job #758905) | Cod sursa (job #3267817) | Cod sursa (job #2156723)
#include <cstdio>
#include <algorithm>
using namespace std;
struct kk{
int m, g;
float p;
}v[5005];
int d[10005];
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int n, m, pr, g, i, s, nr, j;
scanf("%d%d", &n, &m);
for(i = 0;i < n;i++){
scanf("%d%d", &g, &pr);
v[i].g = g;
v[i].m = pr;
}
s = 0;
for(i = 0;i < n;i++){
for(j = m - v[i].g;j >= 0;j--){
if(j + v[i].g <= m && d[j] > 0 || j == 0){
if(d[j + v[i].g] < d[j] + v[i].m){
d[j + v[i].g] = d[j] + v[i].m;
if(d[j + v[i].g] > s)
s = d[j + v[i].g];
}
}
}
}
printf("%d", s);
return 0;
}