func_code_string: #include <bits/stdc++.h>   using namespace std;   long long f[2][1000005];   long long h[1000005];   int n;   int main() {     scanf( %d , &n);     for (int i = (0); i < (n); i++) scanf( %lld , h + i);     long long res = 0;     for (int i = (1); i < (n + 1); i++) {       long long mx = h[i - 1] - 1;       f[1][i] = h[i - 1] - 1;       if (i != 1) {         if (h[i - 1] >= h[i - 2]) {           long long mn = h[i - 1] - h[i - 2] + 1;           f[1][i] += (mx - mn + 1) * f[0][i - 1];         } else {           long long mn = 1;           f[1][i] += (mx - mn + 1) * f[0][i - 1];         }       }       f[1][i] %= 1000000007ll;       res += f[1][i];       if (i != n) {         long long mn = h[i - 1] >= h[i] ? h[i - 1] - h[i] + 1 : 1;         f[0][i] += mx - mn + 1;         if (i != 1) {           if (h[i - 1] >= h[i - 2]) {             long long MN = max(mn, h[i - 1] - h[i - 2] + 1);             f[0][i] += (mx - MN + 1) * f[0][i - 1];           } else {             f[0][i] += (mx - mn + 1) * f[0][i - 1];           }         }       }       f[0][i] %= 1000000007ll;     }     printf( %lld n , res % 1000000007ll);   }   