func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, s[1000005], t[1000005];   int bef[1000005][2];   long long ss, st, cs, ct;   bool sw;   int main() {     memset(bef, -1, sizeof(bef));     bef[0][0] = bef[0][1] = 0;     scanf( %d , &n);     for (int i = (1); i <= (n); i++) scanf( %d , &s[i]), ss += s[i];     for (int i = (1); i <= (n); i++) scanf( %d , &t[i]), st += t[i];     if (ss < st) {       swap(ss, st);       for (int i = (1); i <= (n); i++) swap(s[i], t[i]);       sw = true;     }     int p = 0;     for (int i = (1); i <= (n); i++) {       ct += t[i];       while (p < n && cs + s[p + 1] <= ct) cs += s[++p];       long long d = ct - cs;       assert(d >= 0 && d < n);       if (bef[d][0] == -1) {         bef[d][0] = p;         bef[d][1] = i;       } else {         if (sw) {           printf( %d n , i - bef[d][1]);           for (int j = (bef[d][1] + 1); j <= (i); j++)             printf( %d%c , j, j == i ?   n  :    );         }         printf( %d n , p - bef[d][0]);         for (int j = (bef[d][0] + 1); j <= (p); j++)           printf( %d%c , j, j == p ?   n  :    );         if (!sw) {           printf( %d n , i - bef[d][1]);           for (int j = (bef[d][1] + 1); j <= (i); j++)             printf( %d%c , j, j == i ?   n  :    );         }         return 0;       }     }   }   