func_code_string: #include <bits/stdc++.h>   using namespace std;   const long long maxn = 3e5, N = 2e6 + 90, SQ = 300, base = 1999, mod = 1e9 + 7,                   INF = 1e9 + 1, lg = 30;   const long double eps = 1e-4;   long long n, a[maxn], b[maxn], c[maxn], d[maxn], cnt[maxn], s1, s2, tot;   inline bool check() {     for (long long i = 0; i < n; ++i) {       for (long long j = 0; j < lg; ++j) {         if (a[i] & (1ll << j)) {           cnt[j]++;         }       }     }     for (long long i = 0; i < n; ++i) {       long long res1 = 0, res2 = 0;       for (long long j = 0; j < lg; ++j) {         if (a[i] & (1ll << j)) {           res1 += (cnt[j] * (1ll << j));           res2 += (n - cnt[j]) * (1ll << j);         }         res2 += (cnt[j] * (1ll << j));       }       if (res1 != b[i] || res2 != c[i]) {         return 0;       }     }     return 1;   }   int32_t main() {     ios::sync_with_stdio(0);     cin.tie(0);     cin >> n;     for (long long i = 0; i < n; ++i) {       cin >> b[i];       s1 += b[i];     }     for (long long i = 0; i < n; ++i) {       cin >> c[i];       s2 += c[i];     }     if ((s1 + s2) % (2 * n) != 0) {       cout << -1 <<   n ;       return 0;     }     tot = (s1 + s2) / (2 * n);     for (long long i = 0; i < n; ++i) {       d[i] = b[i] + c[i];     }     for (long long i = 0; i < n; ++i) {       a[i] = (d[i] - tot) / n;     }     if (check()) {       for (long long i = 0; i < n; ++i) {         cout << a[i] <<    ;       }       cout <<   n ;     } else {       cout << -1 <<   n ;     }   }   