Pagini recente » Cod sursa (job #2386677) | Cod sursa (job #186092) | Cod sursa (job #2625632) | Cod sursa (job #452039) | Cod sursa (job #1545442)
#include <fstream>
#include <algorithm>
using namespace std;
int D1[10001],D2[10001],G[5001],P[5001],n,C;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int main()
{
f>>n>>C;
for(int i=1; i<=n; i++)
{f>>G[i]>>P[i];
if(G[i]<=C)
if(D1[G[i]]<P[i])
D1[G[i]]=P[i];
}
for(int i=2; i<=n; i++)
{for(int j=1; j<=C; j++)
{
if(G[i]<=j)
D2[j]=max(D1[j],D1[j-G[i]]+P[i]);
else D2[j]=D1[j];
}
for(int t=1;t<=C;t++)
D1[t]=D2[t];
}
g<<D2[C];
return 0;
}