Pagini recente » Cod sursa (job #1607122) | Cod sursa (job #1499032) | Cod sursa (job #2705715) | Cod sursa (job #2202842) | Cod sursa (job #2435282)
#include <fstream>
using namespace std;
const int nmax=5000;
const int smax=10000;
int v[nmax+1],c[nmax+1],d[smax+1];
ifstream ci ("rucsacul.in");
ofstream co ("rucsacul.out");
int main ()
{
int n,s;
ci >> n >> s;
for (int i=1; i<=n; i++)
{
ci >> v[i];
ci >> c[i];
}
for (int i=1; i<=s; i++)
{
d[i]=-nmax*smax-1;
}
for (int i=1; i<=n; i++)
{
for (int j=s; j>=0; j--)
{
if (j+v[i]<=s && c[i]+d[j]>d[j+v[i]])
{
d[j+v[i]]=c[i]+d[j];
}
}
}
int sol=0;
for (int i=s; i>0; i--)
{
if (d[i]>sol)
sol=d[i];
}
co << sol;
return 0;
}