func_code_string: #include <bits/stdc++.h>   using namespace std;   bool ok[100010];   int a[100010];   int b[100010];   int c[100010];   vector<int> ans;   int main() {     int n;     scanf( %d , &n);     for (int i = 1; i <= n; i++) scanf( %d , &a[i]);     for (int i = 1; i <= n; i++) scanf( %d , &b[i]);     memset(ok, false, sizeof(ok));     long long now, min_value;     for (int i = 1; i <= n; i++) c[i] = a[i] - b[i];     now = 0;     min_value = 0;     for (int i = 1; i <= n; i++) {       now += c[i];       min_value = min(min_value, now);     }     for (int i = 1; i <= n; i++) {       if (min_value == 0) ok[i] = true;       min_value -= c[i];       min_value = min((long long)0, min_value);     }     c[n] = a[1] - b[n];     for (int i = n; i >= 2; i--) c[n - i + 1] = a[i] - b[i - 1];     now = 0;     min_value = 0;     for (int i = 1; i <= n; i++) {       now += c[i];       min_value = min(min_value, now);     }     for (int i = 1; i <= n; i++) {       if (min_value == 0) ok[n - i + 1] = true;       min_value -= c[i];       min_value = min((long long)0, min_value);     }     ans.clear();     for (int i = 1; i <= n; i++)       if (ok[i]) ans.push_back(i);     int len = ans.size();     printf( %d n , len);     for (int i = 0; i < len; i++) {       printf( %d , ans[i]);       if (i == len - 1)         printf(  n );       else         printf(   );     }     return 0;   }   