Pagini recente » Profil M@2Te4i | Istoria paginii utilizator/laura.chelaru | Profil M@2Te4i | Monitorul de evaluare | Cod sursa (job #609531)
Cod sursa(job #609531)
#include<stdio.h>
#define N 5001
int g[N],c[N],s[2*N],s1[2*N],m,n,i,j,r[2*N],t,r1[2*N];
int main()
{freopen("rucsac.in","r",stdin);
freopen("rucsac.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d%d",&g[i],&c[i]);
s[g[1]]=c[1],r[g[1]]=1;
for(i=2;i<=n;i++)
{for(j=1;j<=m;j++)
s1[j]=s[j],r1[j]=r[j];
if(s1[g[i]]<c[i])
s[g[i]]=c[i],r[g[i]]=i;
for(j=1;j<=m-g[i];j++)
if(s1[j+g[i]]<s1[j]+c[i])
s[j+g[i]]=s1[j]+c[i],r[j+g[i]]=r1[j]+i;}
t=s[1];
for(i=2;i<=m;i++)
if(t<s[i])
t=s[i];
printf("%ld",t);
return 0;}