题目:p8742
#include <bits/stdc++.h>
using namespace std;
int w[114514];
int dp[1145][214514];
int s;
int t=0;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>w[i];s+=w[i];
}
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=s;j++){
dp[i][j]=dp[i-1][j];
if(w[i]==j)
{
dp[i][j]=1;
}
else if(dp[i-1][abs(j-w[i])]==1)
{
dp[i][j]=1;
}
else if(dp[i-1][j+w[i]]==1)
{
dp[i][j]=1;
}
if(dp[n][j]==1) t++;
}
}
cout<<t;
return 0;
}
问题:样例过了 但是全wa