Pagini recente » Cod sursa (job #1255912) | Cod sursa (job #1532448) | Cod sursa (job #326066) | Cod sursa (job #181284) | Cod sursa (job #2326541)
#include <fstream>
#define MAXN 5002
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
struct two{
int val, g;
};
two obj[MAXN];
int N, G, dp[MAXN];
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;
}