Pagini recente » Cod sursa (job #3146146) | Cod sursa (job #2893795) | Cod sursa (job #344288) | Cod sursa (job #1983233) | Cod sursa (job #1015527)
#include <fstream>
#define in "rucsac.in"
#define out "rucsac.out"
#define oo 1000000
#define Max_Size 20009
int N, G, Max_c, Sol;
int DP[Max_Size];
struct obj
{
int _w;
int _c;
} P[Max_Size / 2];
inline void Read_Data()
{
std :: ifstream f(in);
f >> N >> G;
for(int i = 1; i <= N; ++i)
{
f >> P[i]._c >> P[i]._w;
Max_c = std :: max(Max_c, P[i]._c);
}
}
inline void Solve()
{
for(int i = 1; i <= N; ++i)
for(int j = G - P[i]._c; j >= 0; --j)
if(DP[j + P[i]._c] < DP[j] + P[i]._w)
DP[j + P[i]._c] = DP[j] + P[i]._w;
for(int i = 0; i <= G; ++i)
Sol = std :: max(Sol, DP[i]);
}
int main()
{
Read_Data();
Solve();
std :: ofstream g(out);
g << Sol << '\n';
g.close();
return 0;
}