Pagini recente » Cod sursa (job #95120) | Cod sursa (job #1631858) | Cod sursa (job #2924186) | Cod sursa (job #364707) | Cod sursa (job #609273)
Cod sursa(job #609273)
#include <fstream.h>
#define max(a, b) ((a) > (b) ? (a) : (b))
int main ()
{
short N, G, W[5000], P[5000], i, j;
long m[2][10000];
ifstream fin ("rucsac.in");
fin >> N >> G;
for (i = 1; i <= N; i++)
{
fin >> W[i] >> P[i];
}
fin.close ();
memset (m, 0, sizeof (m));
for (j = 1; j <= N; j++)
{
for (i = 1; i <= G; i++)
{
if (W[j] <= i) m[j % 2][i] = max (m[(j - 1) % 2][i], m[(j - 1) % 2][i - W[j]] + P[j]);
else m[j % 2][i] = m[(j - 1) % 2][i];
}
}
ofstream fout ("rucsac.out");
fout << m[N % 2][G];
fout.close ();
return 0;
}