Pagini recente » Cod sursa (job #2266109) | Cod sursa (job #55457) | Cod sursa (job #2562710) | Cod sursa (job #882243) | Cod sursa (job #1128012)
#include <stdio.h>
#define max(x,y) ((x)>(y)?(x):(y))
using namespace std;
FILE *f1=freopen("rucsac.in", "r", stdin);
FILE *f2=freopen("rucsac.out", "w", stdout);
int n, g, w, p, a[10001], maxi; /// a[greutate]=profitmax
int main()
{
scanf("%d %d", &n, &g);
while(n--)
{
scanf("%d %d", &w, &p);
for (int i=g; i>=1; i--)
if (a[i] && i+w<=g)
a[i+w]=max(a[i+w], a[i]+p);
a[w]=max(p, a[w]);
}
for (int i=0; i<=g; i++)
maxi=max(maxi, a[i]);
printf("%d", maxi);
return 0;
}