func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = 1e9 + 5;   const long long linf = 1e18 + 5;   const int mod = 1e9 + 7;   const int N = 100 + 5;   const int M = 10;   int n, a[M], C[N][N], dp[M][N];   int f(int cur, int n) {     if (cur == M) return !n;     int &r = dp[cur][n];     if (r != -1) return r;     r = 0;     for (int i = a[cur]; i <= n; i++)       r = (r + (long long)f(cur + 1, n - i) * C[n][i] % mod) % mod;     return r;   }   int main() {     ios ::sync_with_stdio(0);     memset(dp, -1, sizeof(dp));     C[0][0] = 1;     for (int i = 1; i <= N - 1; i++) {       C[i][0] = 1;       for (int j = 1; j <= N - 1; j++)         C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % mod;     }     cin >> n;     for (int i = 0; i <= 9; i++) cin >> a[i];     int st = a[0];     int ans = 0;     for (int i = 1; i <= n; i++) {       a[0] = st;       memset(dp, -1, sizeof(dp));       ans += f(0, i);       if (a[0]) a[0]--;       memset(dp, -1, sizeof(dp));       ans -= f(0, i - 1);       ans = (ans % mod + mod) % mod;     }     cout << ans <<   n ;     return 0;   }   