Pagini recente » Cod sursa (job #917174) | Cod sursa (job #3205720) | Cod sursa (job #2750247) | Cod sursa (job #1951211) | Cod sursa (job #1174586)
#include<stdio.h>
int d[10001];
struct bine { int greu ; int profit ;};
bine v[5001];
int main(){
int n,g,i,j,maxim;
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&g);
for(i=1;i<=n;i++)
scanf("%d%d",&v[i].greu,&v[i].profit);
for(i=2;i<=n;i++)
d[i]=-1;
for(i=1;i<=n;i++)
for(j=g-v[i].greu;j>=0;j--)
if(d[j+v[i].greu]<d[j]+v[i].profit)
d[j+v[i].greu]=d[j]+v[i].profit;
maxim=0;
for(i=1;i<=g;i++)
if(d[i]>maxim)
maxim=d[i];
printf("%d\n",maxim);
return 0;
}