func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 400010;   int c[maxn];   int ans[maxn];   void upd(int n, int k) {     n++;     while (n < maxn) c[n] += k, n += n & (-n);   }   int get(int n) {     n++;     int ans = 0;     while (n) ans += c[n], n -= n & (-n);     return ans;   }   int BS(int n) {     int l = 0, r = maxn - 1, mid;     while (l < r) {       mid = (l + r) / 2;       if (get(mid) >= n)         r = mid;       else         l = mid + 1;     }     return l;   }   int arr[maxn];   int a[maxn], b[maxn];   int main() {     int n, i, j, k;     cin >> n;     for (i = 0; i < n; i++) cin >> a[i];     for (i = 0; i < n; i++) cin >> b[i];     for (i = 0; i < n; i++) upd(i, 1);     for (i = 0; i < n; i++) {       arr[i] += get(a[i]) - 1;       upd(a[i], -1);     }     for (i = 0; i < n; i++) upd(i, 1);     for (i = 0; i < n; i++) {       arr[i] += get(b[i]) - 1;       upd(b[i], -1);     }     for (i = n - 1; i >= 0; i--) {       if (arr[i] <= n - i - 1)         ;       else {         arr[i] %= n - i;         if (i) arr[i - 1]++;       }     }     for (i = 0; i < n; i++) upd(i, 1);     for (i = 0; i < n; i++) ans[i] = BS(arr[i] + 1), upd(ans[i], -1);     for (i = 0; i < n; i++) cout << ans[i] <<    ;     puts(  );   }   