Pagini recente » Cod sursa (job #245806) | Cod sursa (job #1103699) | Cod sursa (job #570099) | Cod sursa (job #2266157) | Cod sursa (job #2433647)
#include <fstream>
using namespace std;
const int nmax=1001;
const int smax=5001;
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]=-1;
}
for (int i=1; i<=n; i++)
{
for (int j=s; j>=0; j--)
{
if (d[j]>=0 && j+v[i]<=s && c[i]+d[j]>d[j+v[i]])
{
d[j+v[i]]=c[i]+d[j];
}
}
}
int max=0;
for (int i=s; i>0; i--)
{
if (d[i]>max)
max=d[i];
}
co << max;
return 0;
}