Pagini recente » Cod sursa (job #886018) | Cod sursa (job #1912973) | Cod sursa (job #480779) | Cod sursa (job #1251739) | Cod sursa (job #1426216)
#include <cstdio>
#define max(a,b) a>b?(a):(b)
using namespace std;
const int gmax=10000;
int d[gmax];
int main() {
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
int n,gm,dr=0,macs=0,gi,pi;
scanf("%d%d",&n,&gm);
for (register int i=1; i<=gm; ++i) {
d[i]=-1;
}
for (register int i=1; i<=n; ++i) {
scanf("%d%d",&gi,&pi);
for (register int j=dr; j>=0; --j) {
if (d[j]!=-1 && j+gi<=gm && d[j+gi]<d[j]+pi) {
d[j+gi]=d[j]+pi;
dr=max(dr,j+gi);
macs=max(macs,d[j+gi]);
}
}
}
printf("%d",macs);
return 0;
}