func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 101000;   int n, z[N], a[N], b[N];   set<pair<int, int> > Set;   int main() {     scanf( %d , &n);     for (int i = 0; i < n; i++) {       scanf( %d , &a[i]);     }     for (int i = 0; i < n; i++) {       scanf( %d , &b[i]);     }     vector<int> ans;     for (int i = 0; i < n; i++) {       z[i] = a[i] - b[i];       if (i) z[i] += z[i - 1];       Set.insert(make_pair(z[i], i));     }     int line = 0;     for (int i = 0; i < n; i++) {       if (Set.begin()->first >= line) {         ans.push_back(i + 1);       }       line = z[i];     }     line = 0;     Set.clear();     for (int i = n - 1; i >= 0; i--) {       z[i] = a[i] - b[(i + n - 1) % n];       if (i != n - 1) z[i] += z[i + 1];       Set.insert(make_pair(z[i], i));     }     for (int i = n - 1; i >= 0; i--) {       if (Set.begin()->first >= line) {         ans.push_back(i + 1);       }       line = z[i];     }     sort(ans.begin(), ans.end());     ans.erase(unique(ans.begin(), ans.end()), ans.end());     printf( %d n , (int)ans.size());     for (__typeof((ans).begin()) it = (ans).begin(); it != (ans).end(); it++) {       printf( %d  , *it);     }     puts(  );     return 0;   }   