Pagini recente » Cod sursa (job #802456) | Cod sursa (job #629546) | Cod sursa (job #1130586) | Cod sursa (job #3032021) | Cod sursa (job #2090144)
#include <algorithm>
#include <fstream>
#define DIM 5010
using namespace std;
int n, gmax;
int dp[2][10010];
struct obiect
{
int g, v;
obiect()
{
g = v = 0;
}
obiect(int a, int b)
{
g = a;
v = b;
}
};
obiect v[DIM];
void Read()
{
ifstream fin("rucsac.in");
fin >> n >> gmax;
int x, y;
for (int i = 1;i <= n;++i)
{
fin >> x >> y;
v[i] = obiect(x, y);
}
fin.close();
}
void Solve()
{
int p = 0;
for (int i = 1;i <= n;++i)
{
for (int j = 1;j <= gmax;++j)
{
if (v[i].g <= j)
dp[1][j] = max(dp[0][j], dp[0][j - v[i].g] + v[i].v);
}
for (int j = 1;j <= gmax;++j)
dp[0][j] = dp[1][j];
}
}
void Write()
{
ofstream fout("rucsac.out");
int pmax = -1;
for (int j = 1;j <= gmax;++j)
pmax = max(pmax, dp[1][j]);
fout << pmax << "\n";
fout.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}