Pagini recente » Cod sursa (job #2640492) | Cod sursa (job #1797017) | Cod sursa (job #1966453) | Cod sursa (job #2447559) | Cod sursa (job #1416283)
#include <cstdio>
using namespace std;
struct rucsac{int g,c;};
rucsac v[5001];
int s[10001];
int maxim(int a, int b)
{
if(a>b)
return a;
return b;
}
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,i,j,G,maxi=-1;
scanf("%d%d", &n, &G);
for(i=1;i<=n;i++)
{
scanf("%d%d", &v[i].g,&v[i].c);
for(j=G;j>=1;j--)
if(s[j]!=0)
if(j+v[i].g<=G)
s[j+v[i].g]=maxim(s[j+v[i].g], s[j]+v[i].c);
s[v[i].g]=maxim(s[v[i].g],v[i].c);
}
for(i=1;i<=G;i++)
if(s[i]>maxi)
maxi=s[i];
printf("%d", maxi);
return 0;
}