Pagini recente » Cod sursa (job #181172) | Cod sursa (job #496464) | Cod sursa (job #21622) | Cod sursa (job #2450841) | Cod sursa (job #2279861)
#include <iostream>
#include <cstdio>
#define N 5005
using namespace std;
int gmax, g[N], v[N], n, d[2*N];
void citire()
{
for(int i=1;i<=n;i++)
scanf("%d %d\n", &g[i], &v[i]);
}
int dinamica()
{
int maxim=0;
for(int i=1;i<=n;i++)
for(int j=gmax-g[i];j>=0;j--)
if(d[j+g[i]]<v[i]+d[j])
{
d[j+g[i]]=v[i]+d[j];
if(d[j+g[i]]>maxim)
maxim=d[j+g[i]];
}
return maxim;
}
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%d %d\n", &n, &gmax);
citire();
printf("%d", dinamica());
return 0;
}