func_code_string: #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;   }   