func_code_string: #include <bits/stdc++.h>   using namespace std;   bool done[1010];   int l[1010], r[1010], ans[1010];   int main() {     int n, i, j, k;     scanf( %d , &n);     int rem = n;     for (i = 0; i < n; i++) {       scanf( %d , &l[i]);       done[i] = 0;     }     for (i = 0; i < n; i++) scanf( %d , &r[i]);     int maxx = n;     while (1) {       set<int> S;       bool over = 1;       for (i = 0; i < n; i++) {         if (done[i] == 0) {           over = 0;           if (l[i] == 0 and r[i] == 0) {             S.insert(i);           }         }       }       if (over) break;       int sz = S.size();       if (sz == 0) {         cout <<  NO  << endl;         return 0;       }       set<int>::iterator it;       for (it = S.begin(); it != S.end(); it++) {         int idx = *it;         ans[idx] = maxx;         for (j = idx - 1; j >= 0; j--) {           if (done[j] == 0 and S.find(j) == S.end()) {             if (r[j] == 0) {               cout <<  NO  << endl;               return 0;             }             r[j]--;           }         }         for (j = idx + 1; j < n; j++) {           if (done[j] == 0 and S.find(j) == S.end()) {             if (l[j] == 0) {               cout <<  NO  << endl;               return 0;             }             l[j]--;           }         }       }       for (it = S.begin(); it != S.end(); it++) {         done[*it] = 1;       }       maxx--;     }     cout <<  YES  << endl;     for (i = 0; i < n; i++) cout << ans[i] <<    ;     cout << endl;     return 0;   }   