func_code_string: #include <bits/stdc++.h>   using namespace std;   int num[5005];   int rmq(int l, int r) {     int ans = 1 << 30, tmp = l;     for (int i = l; i <= r; i++) {       if (ans > num[i]) {         ans = num[i];         tmp = i;       }     }     return tmp;   }   int get(int l, int r, int h) {     if (l > r) return 0;     if (l == r) {       if (num[l] == h)         return 0;       else         return 1;     }     int tmp = rmq(l, r);     int ans = 0;     ans = min(r - l + 1, get(l, tmp - 1, num[tmp]) + get(tmp + 1, r, num[tmp]) +                              num[tmp] - h);     return ans;   }   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; i++) scanf( %d , &num[i]);     int ans = get(0, n - 1, 0);     printf( %d n , ans);   }   