Pagini recente » Cod sursa (job #3274063) | Cod sursa (job #2691354) | Cod sursa (job #2978423) | Cod sursa (job #2514254) | Cod sursa (job #1607629)
#include <fstream>
using namespace std;
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
int a[5003][10003],i,j,n,maxi,gt,g[5003],p[5003],lcur[10004],lpre[10004];
int main()
{
fi>>n>>gt;
for (i=1;i<=n;i++)
fi>>g[i]>>p[i];
for (i=1;i<=n;i++)
{
for (j=0;j<=gt;j++)
{
// a[i][j]=a[i-1][j];
// if (g[i]<=j)
// a[i][j]=max(a[i][j],a[i-1][j-g[i]]+p[i]);
lcur[j]=lpre[j];
if (g[i]<=j)
{
lcur[j]=max(lcur[j],lpre[j-g[i]]+p[i]);
}
}
for (j=0;j<=gt;j++) {lpre[j]=lcur[j];lcur[j]=0;}
}
for (j=1;j<=gt;j++) maxi=max(maxi,lpre[j]);
fo<<maxi;
return 0;
}