Pagini recente » Cod sursa (job #297818) | Cod sursa (job #2839402) | Cod sursa (job #1832911) | Cod sursa (job #36934) | Cod sursa (job #864340)
Cod sursa(job #864340)
#include <cstdio>
int n,gmax,pr[5001],g[5001],a[10001],i,j,mat[100][50],max,pozmax;
int main()
{
freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&gmax);
for(i=1;i<=n;i++)
scanf("%d%d",&g[i],&pr[i]);
for(i=1;i<=gmax;i++)
a[i]=-1;
a[g[1]]=pr[1];
mat[g[1]][1]=1;
mat[g[1]][0]=1;
int k;
for(i=2;i<=n;i++)
{
for(j=gmax-g[j];j>=0;j--)
if(a[j]!=-1 && a[j]+pr[i]>a[j+g[i]])
{
a[j+g[i]]=a[j]+pr[i];
if(a[j+g[i]]>max)
{
max=a[j+g[i]];
pozmax=j+g[i];
}
//for(k=1;k<=mat[j][0];k++)
// mat[j+g[i]][k]=mat[j][k];
//mat[j+g[i]][k]=i;
//mat[j+g[i]][0]=k;
}
}
printf("%d\n",max);
//for(i=1;i<=mat[pozmax][0];i++)
//printf("%d ",mat[pozmax][i]);
return 0;
}