Lang:G++
Edit123456789101112131415161718192021222324252627#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int mo=1000000007;int dp[110][200010];int main(){int n,k;dp[0][100000]=1;scanf("%d%d",&n,&k);for(int i=1;i<=n;++i) {int x;scanf("%d",&x);for(int j=200000;j>=x;--j) {dp[i][j]+=dp[i-1][j-x];dp[i][j]%=mo;}for(int j=200000-x;j>=0;--j) {dp[i][j]+=dp[i-1][j+x];dp[i][j]%=mo;}}printf("%d\n",dp[n][k+100000]);return 0;}