func_code_string: #include <bits/stdc++.h>   using namespace std;   inline void boost() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);   }   const long long maxn = 2e6 + 123;   const long long inf = 1e9 + 123;   const long long linf = 1e18 + 123;   const long long mod = 1e9 + 7;   const double eps = 1e-9;   const double pi = acos(-1);   int dx[8] = {0, 1, -1, 0, 1, -1, 1, -1};   int dy[8] = {1, 0, 0, -1, 1, 1, -1, -1};   long long a[maxn], b[maxn];   vector<pair<long long, long long> > v[maxn];   int main() {     boost();     int n;     cin >> n;     for (int i = 1; i <= n; i++) {       cin >> a[i];       a[i] += a[i - 1];     }     for (int i = 1; i <= n; i++) {       cin >> b[i];       b[i] += b[i - 1];     }     bool WAS = 0;     if (a[n] > b[n]) {       swap(a, b);       WAS = 1;     }     for (int i = 1; i <= n; i++) {       int j = lower_bound(b + 1, b + 1 + n, a[i]) - b;       if (a[i] != b[j]) {         j--;       }       v[a[i] - b[j]].push_back({i, j});     }     if (v[0].size() >= 1) {       if (WAS == 0) {         cout << v[0][0].first <<   n ;         for (int i = 1; i <= v[0][0].first; i++) {           cout << i <<    ;         }         cout <<   n ;         cout << v[0][0].second <<   n ;         for (int i = 1; i <= v[0][0].second; i++) {           cout << i <<    ;         }         cout <<   n ;       } else {         cout << v[0][0].second <<   n ;         for (int i = 1; i <= v[0][0].second; i++) {           cout << i <<    ;         }         cout <<   n  << v[0][0].first <<   n ;         for (int i = 1; i <= v[0][0].first; i++) {           cout << i <<    ;         }         cout <<   n ;       }       return 0;     }     for (int i = 1; i < n; i++) {       if (v[i].size() >= 2) {         if (WAS == 0) {           cout << v[i][1].first - v[i][0].first <<   n ;           for (int j = v[i][0].first + 1; j <= v[i][1].first; j++) {             cout << j <<    ;           }           cout <<   n  << v[i][1].second - v[i][0].second <<   n ;           for (int j = v[i][0].second + 1; j <= v[i][1].second; j++) {             cout << j <<    ;           }           return 0;         } else {           cout << v[i][1].second - v[i][0].second <<   n ;           for (int j = v[i][0].second + 1; j <= v[i][1].second; j++) {             cout << j <<    ;           }           cout <<   n  << v[i][1].first - v[i][0].first <<   n ;           for (int j = v[i][0].first + 1; j <= v[i][1].first; j++) {             cout << j <<    ;           }           return 0;         }       }     }     exit(0);   }   