原来省选题也有裸背包啊、、
if (F[i-1][j]) then F[i][j+c[i]]=F[i][j-c[i]]=1
好了水掉了
#include<cstdio> int f[52][1005]={0},n,st,ed,c[52]; int main(){ scanf("%d%d%d",&n,&st,&ed); for(int i=1;i<=n;i++)scanf("%d",&c[i]); f[0][st]=1; for(int i=1;i<=n;i++) for(int j=0;j<=ed;j++){ if(!f[i-1][j]) continue; if(j+c[i]<=ed) f[i][j+c[i]]=1; if(j-c[i]>=0) f[i][j-c[i]]=1; }int An; for(An=ed;~An;An--) if(f[n][An]) break; printf("%d\n",An); }