Lang:G++
Edit1234567891011121314151617181920212223#include <stdio.h>typedef long long ll;const int maxn=100005;int a[100];ll dp[maxn];int main(){int n,sum;scanf("%d%d",&n,&sum);for(int i=0;i<n;i++) scanf("%d",&a[i]);int gap=-sum;for(int i=0;i<n;i++) gap+=a[i];if(gap<0) printf("0");else{dp[0]=1;for(int i=0;i<n;i++) for(int j=gap;j>=2*a[i];j--) dp[j]=(dp[j]+dp[j-2*a[i]])%1000000007;printf("%lld",dp[gap]);}return 0;}