func_code_string: #include <bits/stdc++.h>   using namespace std;   const double PI = acos(-1);   const int LIM = 15e5;   struct Vector {     int x, y;     Vector operator+(Vector v) { return {x + v.x, y + v.y}; }     Vector operator-(Vector v) { return {x - v.x, y - v.y}; }     long long operator%(Vector v) { return 1LL * x * v.y - 1LL * v.x * y; }     long long operator*(Vector v) { return 1LL * x * v.x + 1LL * y * v.y; }     friend double angle(Vector va, Vector vb) {       return abs(atan2(va % vb, va * vb) * 180 / PI);     }     double len() { return hypot(x, y); }     Vector operator*(int k) { return {k * x, k * y}; }   };   const int N = 1e5 + 1;   int n, sig[N];   Vector a[N];   vector<int> s[N];   void combine(int p) {     for (int i = p; i <= p + 2; ++i)       for (int j = i + 1; j <= p + 2; ++j) {         if (angle(a[i], a[j]) >= 120) {           int r = 3 * p + 3 - i - j;           if (s[i].size() > s[j].size()) s[i].swap(s[j]);           s[j].insert(s[j].end(), s[i].begin(), s[i].end());           a[j] = a[i] + a[j];           if (r == p) {             s[i].swap(s[r]);             a[i] = a[r];           }           return;         } else if (angle(a[i], a[j]) <= 60) {           int r = 3 * p + 3 - i - j;           for (int id : s[j]) sig[id] *= -1;           if (s[i].size() > s[j].size()) s[i].swap(s[j]);           s[j].insert(s[j].end(), s[i].begin(), s[i].end());           a[j] = a[i] - a[j];           if (r == p) {             s[i].swap(s[r]);             a[i] = a[r];           }           return;         }       }   }   bool toolong(Vector v) { return v.len() > LIM; }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cin >> n;     for (int i = 1; i <= n; ++i) {       cin >> a[i].x >> a[i].y;       s[i].push_back(i);       sig[i] = 1;     }     if (n == 1) return cout << 1, 0;     for (int i = 1; i <= n - 2; ++i) {       combine(i);     }     if (angle(a[n - 1], a[n]) <= 90) {       for (int id : s[n]) sig[id] *= -1;     }     for (int i = 1; i <= n; ++i) {       cout << sig[i] <<    ;     }     return 0;   }   