Pagini recente » Cod sursa (job #2061079) | Cod sursa (job #1549658) | Cod sursa (job #45439) | Cod sursa (job #1016548) | Cod sursa (job #2471318)
#include <fstream>
using namespace std;
const int gmax=10000;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
long long int d[gmax+5];
int main() {
int n,g,a,b,last,j,jn,pmax;
fin>>n>>g;
for (int i=1; i<=g; i++)
d[i]=-1;
last=0;
for (int i=1; i<=n; i++) {
fin>>a>>b;
for (j=last; j>=0; j--) {
if (j+a>g) continue;
if (d[j]!=-1) {
jn=j+a;
if (d[jn]<d[j]+b) {
d[jn]=d[j]+b;
if (jn>last) last=jn;
}
}
}
}
pmax=0;
for (int i=1; i<=g; i++)
if (d[i]>pmax)
pmax=d[i];
fout<<pmax<<'\n';
return 0;
}