Pagini recente » Cod sursa (job #1663072) | Cod sursa (job #206350) | Cod sursa (job #1174584)
#include <cstdio>
#define R 10000
#define N 5000
struct obiect {int greutate, profit;} v[N +1];
int d[R +1];
int main ()
{
freopen ("rucsac.in", "r", stdin);
freopen ("rucsac.out", "w", stdout);
int n, r;
scanf ("%d%d", &n, &r);
for (int i = 1; i <= n; i++)
scanf ("%d%d", &v[i].greutate, &v[i].profit);
for (int i = 1; i <= n; i++)
for (int j = r - v[i].greutate; j >= 0; j--)
if (d[j + v[i].greutate] < d[j] + v[i].profit)
d[j + v[i].greutate] = d[j] + v[i].profit;
int max = 0;
for (int i = 1; i <= r; i++)
if (d[i] > max)
max = d[i];
printf ("%d\n", max);
return 0;
}