func_code_string: #include <bits/stdc++.h>   const long long mod = (long long)1e9 + 7;   using namespace std;   vector<long long> parent, sz;   void make_set(long long v) {     parent[v] = v;     sz[v] = 1;   }   long long find_set(long long v) {     if (v == parent[v]) return v;     return parent[v] = find_set(parent[v]);   }   void union_sets(long long a, long long b) {     a = find_set(a);     b = find_set(b);     if (a != b) {       if (a < b) swap(a, b);       parent[b] = a;       sz[a] += sz[b];     }   }   long long n;   void clearall() {     parent.clear();     sz.clear();     parent.resize(n + 1);     sz.resize(n + 1);   }   int32_t main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long t;     cin >> t;     while (t--) {       cin >> n;       vector<long long> vc(n);       for (long long i = 0; i < n; i++) cin >> vc[i];       clearall();       for (long long i = 0; i <= n; i++) {         make_set(i);       }       vector<long long> mp(n + 1, 0);       for (long long i = 0; i < n; i++) {         mp[vc[i]] = i;       }       bool foo = true;       vector<long long> ocp(n, 0);       vector<long long> mxmp(n, 1);       multiset<long long, greater<long long>> st;       for (long long i = 0; i < n; i++) st.insert(1);       for (long long i = 1; i <= n; i++) {         long long mx = *(st.begin());         long long ii = mp[i];         if (mxmp[ii] != mx) {           foo = false;           break;         }         auto it = st.find(mxmp[ii]);         st.erase(it);         if (ii > 0 and ocp[ii - 1] == 1) {           union_sets(ii, ii - 1);         }         if (ii < n - 1 and ocp[ii + 1] == 1) {           union_sets(ii, ii + 1);         }         ocp[ii] = 1;         long long pr = find_set(ii);         if (pr < n - 1 and ocp[pr + 1] == 0) {           it = st.find(mxmp[pr + 1]);           st.erase(it);           mxmp[pr + 1] = sz[pr] + 1;           st.insert(sz[pr] + 1);         }       }       if (foo) {         cout <<  Yes n ;       } else {         cout <<  No n ;       }     }     return 0;   }   