func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T, typename L>   inline bool smax(T &x, L y) {     return x < y ? (x = y, true) : false;   }   template <typename T, typename L>   inline bool smin(T &x, L y) {     return y < x ? (x = y, true) : false;   }   constexpr int MAXN = 1e5 + 15;   int n;   int a[MAXN];   int ttime[MAXN];   stack<int> dq;   int mx;   int main() {     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a[i];     }     for (int i = 0; i < n; i++) {       ttime[i] = 1;       while (!dq.empty() && a[i] > a[dq.top()]) {         smax(ttime[i], ttime[dq.top()] + 1);         dq.pop();       }       if (!dq.empty()) {         smax(mx, ttime[i]);       } else {         ttime[i] = 1e6 + 15;       }       dq.push(i);     }     return cout << mx <<   n , false;   }   