Pagini recente » Cod sursa (job #709355) | Cod sursa (job #1565105) | Cod sursa (job #2849644) | Cod sursa (job #1919405) | Cod sursa (job #823907)
Cod sursa(job #823907)
#include <fstream>
using namespace std;
ifstream intrare("rucsac.in");
ofstream iesire("rucsac.out");
int g[1000], c[1000], gmax;
int n, maxim, cmax[1000], ind;
int uz[1000][1000];
int main()
{
int i, j, x, k;
intrare >> n >> gmax;
for(i = 0; i < n; i++)
intrare >> g[i] >> c[i];
for(j = 1; j <= gmax; j++)
{
maxim = -1;
for(i = 0; i < n; i++)
if (g[i] <= j && uz[j-g[i]][i] == 0)
{
x = c[i] + cmax[j-g[i]];
if (x > maxim)
{
cmax[j] = x;
maxim = x;
for(k = 0; k < n; k++)
uz[j][k]=uz[j-g[i]][k];
uz[j][i] = 1;
}
}
}
maxim = -1;
for(i = 1; i <= gmax; i++)
if (cmax[i] > maxim)
maxim = cmax[i];
iesire << maxim << '\n';
return 0;
}