func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1000005;   map<long long, pair<int, int> > mm;   int a[maxn];   int b[maxn];   long long s[maxn], s1[maxn];   int main() {     int i, j, n;     cin >> n;     for (i = 1; i <= n; i++) {       scanf( %d , &a[i]);       s[i] = s[i - 1] + a[i];     }     for (i = 1; i <= n; i++) {       scanf( %d , &b[i]);       s1[i] = s1[i - 1] + b[i];     }     int p = n;     if (s[n] <= s1[n]) {       i = n;       while (i >= 0) {         if (s[i] < s1[p]) {           p--;           continue;         }         if (mm.find(s[i] - s1[p]) != mm.end()) {           pair<int, int> p2 = mm[s[i] - s1[p]];           printf( %d n , p2.first - i);           for (j = i + 1; j <= p2.first; j++) printf( %d  , j);           printf(  n );           printf( %d n , p2.second - p);           for (j = p + 1; j <= p2.second; j++) printf( %d  , j);           printf(  n );           return 0;         }         mm[s[i] - s1[p]] = make_pair(i, p);         i--;       }     } else {       i = n;       while (i >= 0) {         if (s1[i] < s[p]) {           p--;           continue;         }         if (mm.find(s1[i] - s[p]) != mm.end()) {           pair<int, int> p2 = mm[s1[i] - s[p]];           printf( %d n , p2.second - p);           for (j = p + 1; j <= p2.second; j++) printf( %d  , j);           printf(  n );           printf( %d n , p2.first - i);           for (j = i + 1; j <= p2.first; j++) printf( %d  , j);           printf(  n );           return 0;         }         mm[s1[i] - s[p]] = make_pair(i, p);         i--;       }     }     printf( -1 n );   }   