Pagini recente » Cod sursa (job #814528) | Cod sursa (job #1740870) | Cod sursa (job #1650038) | Cod sursa (job #2679632) | Cod sursa (job #1377466)
#include <fstream>
#include <algorithm>
const int MAX_N(5000);
const int MAX_G(10001);
int n, g, Dp [MAX_G], Best;
struct
{
int w;
int p;
} Obj [MAX_N];
inline void Read (void)
{
std::ifstream input("rucsac.in");
input >> n >> g;
for (int i(0) ; i < n ; ++i)
input >> Obj[i].w >> Obj[i].p;
input.close();
}
inline void Print (void)
{
std::ofstream output("rucsac.out");
output << Best << '\n';
output.close();
}
inline void Dynamic (void)
{
for (int i(0) ; i <= n ; ++i)
for (int j(g - Obj[i].w) ; j >= 0 ; --j)
Dp[j + Obj[i].w] = std::max(Dp[j + Obj[i].w],Dp[j] + Obj[i].p);
for (int i(1) ; i <= g ; ++i)
Best = std::max(Best,Dp[i]);
}
int main (void)
{
Read();
Dynamic();
Print();
return 0;
}