func_code_string: #include <bits/stdc++.h>   using namespace std;   int v[100005];   stack<pair<int, int> > S;   vector<pair<int, int> > Q;   int main() {     int N;     scanf( %d , &N);     for (int i = 0; i < N; i++) scanf( %d , &v[i]);     ++N;     v[N] = 0;     for (int i = 0; i < N; i++) {       int a = v[i];       if (S.empty() && !a) continue;       if (S.empty() || a > S.top().first) {         int l = (S.empty() ? 0 : S.top().first);         for (int j = l + 1; j <= a; j++) S.push(pair<int, int>(j, i));       }       if (a < S.top().first) {         int l = S.top().first;         for (int j = l; j > a; j--) {           Q.push_back(pair<int, int>(S.top().second, i));           S.pop();         }       }     }     cout << Q.size() << endl;     for (int i = 0; i < (int)Q.size(); i++)       printf( %d %d n , Q[i].first + 1, Q[i].second);   }   