#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
const int PRZES = 10000;
void dod(long long& a, long long b) { a = (a + b) % MOD; }
int main() {
  ios_base::sync_with_stdio(0);
  int n;
  cin >> n;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) cin >> a[i];
  long long odp = 0;
  vector<vector<long long> > dp(2, vector<long long>(20001, 0));
  dp[0][a[0] + PRZES] = 1;
  dp[0][-a[0] + PRZES] = 1;
  for (int i = 0; i < n - 1; ++i) {
    int akt = i % 2;
    int nast = akt ^ 1;
    for (int j = -10000; j <= 10000; ++j) {
      if (j + a[i + 1] + PRZES < 20001)
        dod(dp[nast][j + a[i + 1] + PRZES], dp[akt][j + PRZES]);
      if (j + a[i + 1] + PRZES < 20001)
        dod(dp[nast][j - a[i + 1] + PRZES], dp[akt][j + PRZES]);
    }
    dod(dp[nast][a[i + 1] + PRZES], 1);
    dod(dp[nast][-a[i + 1] + PRZES], 1);
    dod(odp, dp[akt][-a[i + 1] + PRZES]);
    dod(odp, dp[akt][a[i + 1] + PRZES]);
    for (int j = 0; j < 20001; ++j) dp[akt][j] = 0;
  }
  cout << odp;
  return 0;
}
