#include <bits/stdc++.h>
using namespace std;
long long n;
long long arr[1005];
long long dp[1005][3 * 10000];
long long add(long long a, long long b) {
  return ((a % 1000000007) + (b % 1000000007)) % 1000000007;
}
long long f(long long idx, long long sum) {
  if (idx == n + 1) {
    return 0;
  }
  if (dp[idx][sum] != -1) return dp[idx][sum];
  long long res1 = sum + arr[idx];
  long long res2 = sum - arr[idx];
  long long val = 0;
  if (res1 == 10001 || res2 == 10001) val++;
  long long res = add(f(1 + idx, res1), f(1 + idx, res2));
  res = add(res, val);
  return dp[idx][sum] = res;
}
int main() {
  scanf("%lld", &n);
  for (long long i = 1; i <= n; i++) scanf("%lld", &arr[i]);
  memset(dp, -1, sizeof dp);
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    ans = add(ans, f(i, 10001));
  }
  cout << ans;
}
