Pagini recente » Cod sursa (job #306615) | Cod sursa (job #1087876) | Cod sursa (job #2134072) | Cod sursa (job #1050509) | Cod sursa (job #628721)
Cod sursa(job #628721)
#include <stdio.h>
#define NMAX 5005
#define GMAX 10010
int A[2][GMAX], W[NMAX], P[NMAX];
int N, G;
inline int max(int a, int b)
{
return (a>b)?a:b;
}
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int i, cw;
scanf("%d %d", &N, &G);
for (i=1; i<=N; ++i)
scanf("%d %d", &W[i], &P[i]);
int l = 0;
for (i=1; i<=N; ++i, l = 1^l)
for (cw=0; cw<=G; ++cw) {
A[1^l][cw] = A[l][cw];
if (W[i] <= cw)
A[1^l][cw] = max(A[l][cw], A[l][cw-W[i]] + P[i]);
}
printf("%d\n", A[l][G]);
return 0;
}