func_code_string: #include <bits/stdc++.h>   #pragma GCC optimize( O3 )   using namespace std;   const long long MOD = 1e9 + 7;   long long a[200012];   long long in[200021], out[200012];   void solve() {     long long n, m, i, j, c, sum;     i = j = c = sum = 0;     cin >> n;     for (i = 0; i < n; ++i) {       cin >> a[i];       --a[i];       if (a[i] != -1) {         ++in[a[i]];         ++out[i];       }     }     vector<long long> loops;     for (i = 0; i < n; ++i) {       if (in[i] == 0 and out[i] == 0) {         loops.push_back(i);       }     }     if (loops.size() == 1) {       long long init = loops[0];       for (i = 0; i < n; ++i) {         if (in[i] == 0 and i != init) {           a[init] = i;           ++out[init];           ++in[i];           break;         }       }     } else if (loops.size() > 1) {       for (i = 0; i < loops.size(); ++i) {         long long curr = loops[i];         long long nxt = loops[(i + 1) % loops.size()];         a[curr] = nxt;         ++in[nxt];         ++out[curr];       }     }     vector<long long> ins, outs;     for (i = 0; i < n; ++i) {       if (in[i] == 0) ins.push_back(i);       if (out[i] == 0) outs.push_back(i);     }     for (i = 0; i < outs.size(); ++i) {       a[outs[i]] = ins[i];     }     for (i = 0; i < n; ++i) {       cout << a[i] + 1 <<    ;     }     cout <<   n ;   }   signed main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long t = 1;     while (t--) {       solve();     }     return 0;   }   