Pagini recente » Monitorul de evaluare | Cod sursa (job #2709265) | Cod sursa (job #2488875) | Cod sursa (job #2760709) | Cod sursa (job #1960567)
#include<cstdio>
using namespace std;
const int NMAX=10000;
int d[NMAX];
int main(){
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,G,g,p,R,i,j;
scanf("%d%d", &n, &G);
d[0]=R=0;
for(i=1;i<=G;i++)
d[i]=-1;
for(i=1;i<=n;i++){
scanf("%d%d", &g, &p);
for(j=R;j>=0;j--)
if(d[j]!=-1 && j+g<=G)
if(d[j]+p>d[j+g]){
d[j+g]=d[j]+p;
if(j+g>R)
R=j+g;
}
}
int maxx=-1;
for(i=1;i<=G;i++)
if(d[i]>maxx)
maxx=d[i];
printf("%d", maxx);
return 0;
}