Pagini recente » Cod sursa (job #971423) | Cod sursa (job #2529099) | Cod sursa (job #266889) | Cod sursa (job #1286861) | Cod sursa (job #1789212)
#include <cstdio>
#include <cstring>
#ifdef INFOARENA
#define ProblemName "rucsac"
#endif
#define MCONCAT(A, B) A B
#ifdef ProblemName
#define InFile MCONCAT(ProblemName, ".in")
#define OuFile MCONCAT(ProblemName, ".out")
#else
#define InFile "fis.in"
#define OuFile "fis.out"
#endif
#define MAXN 5010
#define MAXG 10010
int dp[MAXN];
int main() {
freopen(InFile, "r", stdin);
freopen(OuFile, "w", stdout);
int N, G;
scanf("%d%d", &N, &G);
memset(dp, 0, sizeof(dp));
int sol = 0;
for (int i = 1; i <= N; ++i) {
int w, p;
scanf("%d%d", &w, &p);
for (int j = G; j >= w; --j) {
int tentative = dp[j - w] + p;
if (tentative > dp[j]) {
dp[j] = tentative;
if (tentative > sol)
sol = tentative;
}
}
}
printf("%d\n", sol);
return 0;
}