Pagini recente » Cod sursa (job #1268736) | Cod sursa (job #747524) | Cod sursa (job #4430) | Borderou de evaluare (job #893670) | Cod sursa (job #1766615)
#include <fstream>
using namespace std;
int best[10005],n,G,p,g,i,j,max1,max2;
ifstream f("rucsac.in");
ofstream out("rucsac.out");
int main()
{
f>>n>>G;
max1=0;
for(i=1;i<=n;i++){
f>>g>>p;
for(j=max1;j>0;j--)
if(best[j]!=0&&j+g<=G&&best[j+g]<best[j]+p){
best[j+g]=best[j]+p;
if(j+g>max1)
max1=j+g;
}
if(best[g]<p)
best[g]=p;
if(g>max1)
max1=g;
}
max2=0;
for(i=1;i<=G;i++)
if(best[i]>max2)
max2=best[i];
out<<max2;
return 0;
}