Pagini recente » Cod sursa (job #1439254) | Cod sursa (job #1185911) | Cod sursa (job #2382211) | Cod sursa (job #1666903) | Cod sursa (job #2326578)
#include <fstream>
#define MAXN 5002
#define MAXM 10004
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct two{
int val, g;
};
two obj[MAXN];
int N, G, dp[MAXM];
inline void Read(int &N, int &G) {
fin >> N >> G;
for (int i = 1; i <= N; i++) {
fin >> obj[i].g >> obj[i].val;
}
}
inline void Dinamica(int N, int G) {
for (int i = 1; i <= N; i++) {
for (int j = G; j; j--) {
if (j - obj[i].g >= 0)
dp[j] = max(dp[j], dp[j - obj[i].g] + obj[i].val);
}
}
fout << dp[G];
}
int main () {
int N, G;
Read(N, G);
Dinamica(N, G);
fin.close(); fout.close(); return 0;
}