func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1005;   bool vis[N];   vector<int> temp;   int n, t, num;   int ans[N], L[N], R[N];   void pr() {     return;     for (int i = 0; i < n; i++) printf( %d  , ans[i]);     puts(  );     puts(  );   }   void pr2() {     return;     printf( %d n , temp.size());     for (int i = 0; i < temp.size(); i++) printf( %d  , temp[i]);     puts(  );     puts(  );   }   void check() {     for (int i = 0; i < n; i++) {       int c = 0;       for (int j = 0; j < i; j++) c += (ans[j] > ans[i]);       if (c != L[i]) {         printf( NO );         exit(0);       }       c = 0;       for (int j = i; j < n; j++) c += (ans[j] > ans[i]);       if (c != R[i]) {         printf( NO );         exit(0);       }     }   }   int main() {     scanf( %d , &n);     for (int i = 0; i < n; i++) scanf( %d , &L[i]);     for (int i = 0; i < n; i++) scanf( %d , &R[i]);     if (L[0] != 0 || R[n - 1] != 0) {       printf( NO );       return 0;     }     num = 0;     pr();     while (num < n) {       temp.clear();       for (int i = 0; i < n; i++) {         if (L[i] + R[i] == num) {           temp.push_back(i);           vis[i] = 1;         }       }       if (temp.empty()) {         printf( NO );         return 0;       }       pr2();       for (int i = 0; i < temp.size(); i++) {         int x = temp[i];         ans[x] = n - num;       }       pr();       num += temp.size();     }     check();     puts( YES );     for (int i = 0; i < n; i++) printf( %d  , ans[i]);     return 0;   }   