Pagini recente » Cod sursa (job #1223405) | Cod sursa (job #1266352) | Cod sursa (job #1168125) | Cod sursa (job #1831112) | Cod sursa (job #2715202)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
const int nMax = 5000 + 5;
const int gMax = 10000 + 5;
int n, G;
int dp[gMax], g[nMax], p[nMax];
void Citire()
{
fin >> n >> G;
for (int i = 1; i <= n; i++)
{
fin >> g[i] >> p[i];
}
}
void Afisare(int maxim)
{
fout << maxim;
}
void Rezolvare()
{
int maxim = 0;
for (int i = 1; i <= n; i++)
{
for (int j = G - g[i]; j >= 0; j--)
{
if (dp[j + g[i]] < dp[j] + p[i])
{
dp[j + g[i]] = dp[j] + p[i];
}
}
}
for (int i = 1; i <= G; i++)
{
maxim = max(maxim, dp[i]);
}
Afisare(maxim);
}
int main()
{
Citire();
Rezolvare();
fin.close();
fout.close();
return 0;
}