Pagini recente » Cod sursa (job #1763528) | Cod sursa (job #3174553) | Cod sursa (job #2022308) | Cod sursa (job #706964) | Cod sursa (job #733071)
Cod sursa(job #733071)
#include<stdio.h>
FILE *f=fopen("rucsac.in","r"),*gi=fopen("rucsac.out","w");
const int N=1005,GX=10001;
long long w[N],p[N],DP[2][GX],n,GMAX;
void citeste()
{int i;
fscanf(f,"%lld%lld",&n,&GMAX);
for(i=1;i<=n;i++)
{fscanf(f,"%lld%lld",&w[i],&p[i]);
}
}
int main()
{int i,g,k,k1;
citeste();
k=1;k1=1;
for(i=1;i<=n;i++,k=1-k,k1=k1*(-1))
{for(g=1;g<=GMAX;g++)
{DP[k][g]=DP[k-k1*1][g];
if(w[i]<=g)
{if(DP[k][g]<DP[k-k1*1][g-w[i]]+p[i])
{DP[k][g]=DP[k-k1*1][g-w[i]]+p[i];
}
}
}
}
fprintf(gi,"%lld",DP[1-k][GMAX]);
fclose(f);
fclose(gi);
return 0;
}