func_code_string: #include <bits/stdc++.h>   using namespace std;   const bool testing = false;   pair<long long, long long> d[100000];   int nf[100000], nb[100000];   pair<long long, long long> getmid(int a, int b) {     long long y = d[b].second - d[a].second;     long long x = d[b].first - d[a].first;     pair<long long, long long> res =         make_pair(-y + x * x + 2 * x * d[a].first, 2 * x);     return res;   }   void program() {     int n;     cin >> n;     for (int i = 0; i < n; i++) {       long long t1, t2;       cin >> t1 >> t2;       d[i] = make_pair(t1, t2);     }     std::sort(d, d + n);     int start = 0;     while (start + 1 < n && d[start + 1].first == d[start].first) start++;     {       nb[start] = -1;       int prev = start;       while (prev < n) {         int t = prev + 1;         while (t + 1 < n && d[t + 1].first == d[t].first) t++;         if (t < n) nb[t] = prev;         nf[prev] = t;         prev = t;       }     }     {       int t1 = start;       while (true) {         int t2 = nf[t1];         if (t2 == n) break;         int t3 = nf[t2];         if (t3 == n) break;         pair<long long, long long> A1 = getmid(t1, t2);         pair<long long, long long> A2 = getmid(t1, t3);         if (A2.first * A1.second <= A1.first * A2.second) {           nf[t1] = t3;           nb[t3] = t1;           if (nb[t1] != -1) t1 = nb[t1];         } else           t1 = nf[t1];       }     }     long long res = 0;     {       int t = start;       while (nf[t] != n) {         res++;         t = nf[t];       }     }     cout << res;   }   int main() {     if (!testing) {       program();       return 0;     }     FILE* fin = NULL;     fin = fopen( in.txt ,  w+ );     fprintf(fin,   n3 n-1 0 n0 2 n1 0 n );     fclose(fin);     freopen( in.txt ,  r , stdin);     printf( test case(1) => expected :  n );     printf( 2 );     printf( test case(1) => found    :  n );     program();     fin = fopen( in.txt ,  w+ );     fprintf(fin,   n5 n1 0 n1 -1 n0 -1 n-1 0 n-1 -1 n );     fclose(fin);     freopen( in.txt ,  r , stdin);     printf( test case(2) => expected :  n );     printf( 1 );     printf( test case(2) => found    :  n );     program();     return 0;   }   