Pagini recente » Cod sursa (job #2844705) | Cod sursa (job #2938376) | Cod sursa (job #2024335) | Cod sursa (job #593514) | Cod sursa (job #2471306)
#include <fstream>
using namespace std;
const int NMAX=5000;
const int GMAX=10000;
int d[GMAX+5];
ifstream fin ("rucsac.in");
ofstream fout ("rucsac.out");
int main()
{
int n,G,last,g,p,i,j,jn,maxp;
fin>>n>>G;
last=0;
for(i=1;i<=G;i++)
d[i]=-1;
for(i=1;i<=n;i++)
{
fin>>g>>p;
for(j=last;j>=0;j--)
{
if(j+g>G)continue;
if(d[j]!=-1)
{
jn=j+g;
if(d[jn]<d[j]+p)
{
d[jn]=d[j]+p;
if(jn>last)
last=jn;
}
}
}
}
maxp=0;
for(i=1;i<=G;i++)
if(d[i]>maxp)
maxp=d[i];
fout<<maxp<<"\n";
fin.close();
fout.close();
return 0;
}