Pagini recente » Cod sursa (job #2985905) | Cod sursa (job #478523) | Cod sursa (job #2898525) | Cod sursa (job #1651960) | Cod sursa (job #2121985)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int d[10005];
int main()
{
int g,i,j,p,last=0,pmax=0,N,G;
fin>>N>>G;
for(i=1;i<=10004;i++)
d[i]=-1;
for(i=1;i<=N;i++)
{
fin>>g>>p;
for(j=last;j>=0;j--)
{
if(d[j]!=-1 && j+g<=G)
{if(d[j+g]==-1)
d[j+g]=d[j]+p;
else
d[j+g]=max(d[j+g],d[j]+p);
}
}
last=min(last+g,G);
}
pmax=d[G];
for(i=G-1;i>=1;i--)
if(d[i]>pmax)
pmax=d[i];
fout<<pmax;
return 0;
}