Pagini recente » Cod sursa (job #2950175) | Cod sursa (job #1481182) | Cod sursa (job #2634687) | Cod sursa (job #218684) | Cod sursa (job #1796570)
#include <fstream>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout("rucsac.out");
int r[10010];
int g[5010], p[5010];
int n, s, i, j;
// r[i] = profitul maxim sa obtin suma i
int main () {
fin>>n>>s;
for (i=1;i<=n;i++)
fin>>g[i]>>p[i];
r[0] = 1;
for (i=1;i<=n;i++) {
for (j=s;j>=1;j--)
if (r[j] != 0 && j+g[i] <= s)
r[ j+g[i] ] = max (r[j + g[i] ], r[j] + p[i]);
r[g[i]] = max( r[ g[i] ], p[i] );
}
int sol = 0;
for (i=1;i<=s;i++)
sol = max(sol, r[i]);
fout<<sol;
}