题目:
水得不想写。别忘了-1。
#include#include #include using namespace std;const int N=55,M=1005;int n,m,a,qd;bool dp[2][M];int main(){ scanf("%d%d%d",&n,&qd,&m);dp[0][qd]=1; for(int i=1;i<=n;i++) { scanf("%d",&a); memset(dp[i&1],0,sizeof dp[i&1]); for(int j=0;j<=m;j++) { if(j+a<=m)dp[i&1][j]|=dp[(i-1)&1][j+a]; if(j-a>=0)dp[i&1][j]|=dp[(i-1)&1][j-a]; } } for(int j=m;j>=0;j--)if(dp[n&1][j]){printf("%d",j);return 0;} printf("-1");return 0;}