# include using namespace std; const long long maxn = 100005; const long long MOD = 1e9+7; long long dp[maxn][2]; long long p[305]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); freopen("duel.in","r",stdin); freopen("duel.out","w",stdout); long long n,m,i,j; cin>>n; for(i=1;i<=n;i++) { cin>>p[i]; p[i]*=2; } long long sum = n*(n+1)/2; long long all= sum*2; bool fl=1; dp[0][0] = 1; long long up = 0; for(i=1;isum){dp[j][fl] = 0;dp[j][!fl]=0;} else dp[j][fl] = dp[j][!fl]; } //fl = !fl; for(j=0;jsum)break; dp[j+p[i]][fl] = (dp[j+p[i]][fl]+dp[j][!fl])%MOD; } for(j=0;jsum)break; dp[j+p[i]/2][fl] = (dp[j+p[i]/2][fl]+dp[j][!fl])%MOD; } //for(j=0;j<=sum;j++) // cout<