func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 0x3f3f3f3f;   inline bool EQ(double a, double b) { return fabs(a - b) < 1e-9; }   const int InF = 1 << 29;   inline int two(int n) { return 1 << n; }   inline int test(int n, int b) { return (n >> b) & 1; }   inline void set_bit(int& n, int b) { n |= two(b); }   inline void unset_bit(int& n, int b) { n &= ~two(b); }   inline int last_bit(int n) { return n & (-n); }   inline int ones(int n) {     int res = 0;     while (n && ++res) n -= n & (-n);     return res;   }   template <class T>   void chmax(T& a, const T& b) {     a = max(a, b);   }   template <class T>   void chmin(T& a, const T& b) {     a = min(a, b);   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     long long n;     cin >> n;     long long a[n];     for (int i = 1; i <= n; i++) {       cin >> a[i];     }     long long x = 0, y;     for (int i = 1; i <= n; i++) {       x++;       y = a[i];       for (int j = i; j <= y; j++) y = max(y, a[j]);       i = y;     }     cout << x << endl;     return 0;   }   