Pagini recente » Cod sursa (job #521992) | Cod sursa (job #1452763) | Cod sursa (job #1011044) | Cod sursa (job #1977270) | Cod sursa (job #2645773)
#include <fstream>
using namespace std;
ifstream cin("rucsac.in");
ofstream cout("rucsac.out");
const int nmax=10001;
int d[nmax+1];
int main() {
int n,G,i,j,last,g,p,maxp=0;
cin>>n>>G;
for(i=1;i<=G;i++) d[i]=-1;
last=0;
for(i=1;i<=n;i++){
cin>>g>>p;
for(j=last;j>=0;j--){
if(j+g>G) continue;
if(d[j]!=-1){
if(d[j+g]<(d[j]+p)){
d[j+g]=d[j]+p;
if(j+g>last) last=j+g;
}
}
}
} for(int i=1;i<=G;i++)maxp=max(maxp,d[i]);
cout<<maxp;
return 0;
}