Pagini recente » Cod sursa (job #2384349) | Cod sursa (job #2443138) | Cod sursa (job #2887612) | Cod sursa (job #2454959) | Cod sursa (job #937167)
Cod sursa(job #937167)
#include <fstream>
using namespace std;
ifstream f("rucsac.in"); ofstream g("rucsac.out");
const int N_Max = 5003, M_Max = 10003;
int N, G, P[N_Max], W[N_Max], Dp[N_Max][M_Max];
inline void read_Data() {
f >> N >> G;
for(int i = 1; i <= N; ++i)
f >> W[i] >> P[i];
}
inline void solve() {
for(int i = 1; i <= N; ++i)
for(int cw = 1; cw <= G; ++cw) {
Dp[i][cw] = Dp[i - 1][cw];
if(W[i] <= cw)
Dp[i][cw] = max(Dp[i][cw], Dp[i - 1][cw - W[i]] + P[i]);
}
}
int main() {
read_Data();
solve();
g << Dp[N][G] << '\n';
g.close();
return 0;
}