Pagini recente » Cod sursa (job #2842318) | Cod sursa (job #3267768) | Cod sursa (job #574196) | Cod sursa (job #488575) | Cod sursa (job #1860746)
#include <fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int d[10005];
int main()
{
int last=0,i,j,g,p,n,maxi=0,GMAX;//j greutate d[j] profit
in>>n>>GMAX;
for(i=1;i<=GMAX;++i)
d[i]=-1;
d[0]=0;
for(i=1;i<=n;++i)
{
in>>g>>p;
for(j=last;j>=0;--j)
{
if(j+g>GMAX)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(i=1;i<=GMAX;++i)
if(d[i]>=maxi)
maxi=d[i];
out<<maxi;
return 0;
}