Pagini recente » Borderou de evaluare (job #1952238) | Borderou de evaluare (job #482915) | Borderou de evaluare (job #676912) | Borderou de evaluare (job #1948497) | Cod sursa (job #1127999)
#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>=0; i--)
if (a[i])
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;
}