Pagini recente » Cod sursa (job #2196880) | Cod sursa (job #419831) | Cod sursa (job #1372290) | Cod sursa (job #2136898) | Cod sursa (job #1348086)
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
int d[10001];
int n, G, p, gr, i, max1, j, pmax = 0;
cin>>n;
cin>>G;
for (i = 1; i <= G; i++)
d[i] = -1;
max1 = 0;
for (i = 1; i <= n; i++)
{
cin >> gr >> p;
for (j = max1; j >= 0; j--)
{
if (d[j] != -1 && j + gr <= G)
{
d[j + gr] = max(d[j + gr], d[j] + p);
if ( max1 < j+gr )
{
max1 = j + gr;
}
}
}
}
for (i = G; i >= 1; i--)
{
if (d[i] > pmax)
pmax = d[i];
}
cout << pmax;
}