Pagini recente » Cod sursa (job #1314019) | Cod sursa (job #2103225) | Cod sursa (job #658858) | Monitorul de evaluare | Cod sursa (job #1245647)
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream o("rucsac.out");
int n,gmax,g[5005],c[5005],s,cmax[10005],uz[10005][5005],i,j;
int main()
{
f>>n>>gmax;
for(i=1; i<=n; ++i)
f>>g[i],f>>c[i];
for(s=1; s<=gmax; ++s)
cmax[s]=-1;
for(s=1; s<=gmax; ++s)
for(i=1; i<=n; ++i)
{
if(g[i]<=s&& !uz[s-g[i]][i]&&cmax[s-g[i]]!=-1)
if(cmax[s]<cmax[s-g[i]]+c[i])
{
cmax[s]=cmax[s-g[i]]+c[i];
for(j=1; j<=n; ++j)
uz[s][j]=uz[s-g[i]][j];
uz[s][i]=1;
}
}
o<<cmax[gmax]<<'\n';
return 0;
}