func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e5 + 5;   const long long int BOUND = 1.5e6;   const long long int SQ_BOUND = BOUND * BOUND;   vector<complex<long long int> > arr;   long long int s[N];   inline long long int norm_sq(const complex<long long int> &z) {     return (z * conj(z)).real();   }   long long int greedy(long long int sgn) {     complex<long long int> o{0, 0};     reverse((arr).begin(), (arr).end());     o = (s[0] = sgn) * arr[0];     for (int i = 1; i < (int)arr.size(); ++i) {       complex<long long int> po = o + arr[i];       complex<long long int> ne = o - arr[i];       if (norm_sq(po) <= norm_sq(ne)) {         s[i] = 1;         o = po;       } else {         s[i] = -1;         o = ne;       }     }     reverse((arr).begin(), (arr).end());     return norm_sq(o);   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     srand(time(NULL));     int n;     cin >> n;     for (int i = 0; i < n; ++i) {       int x, y;       cin >> x >> y;       arr.emplace_back(x, y);     }     long long int cur, sgn = 1;     do {       cur = greedy(sgn);       if (!~sgn) random_shuffle((arr).begin(), (arr).end());       sgn = -sgn;     } while (cur > SQ_BOUND);     for (int i = n - 1; i >= 0; --i) cout << s[i] <<    n [i + 1 == n];     return 0;   }   