func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<pair<long long int, long long int> > points, hull;   bool comp(pair<long long int, long long int> a,             pair<long long int, long long int> b) {     if (a.first != b.first) return a.first < b.first;     return a.second < b.second;   }   int cross(pair<long long int, long long int> a,             pair<long long int, long long int> b,             pair<long long int, long long int> c) {     return a.first * (b.second - c.second) + b.first * (c.second - a.second) +                c.first * (a.second - b.second) >=            0;   }   int main() {     int n;     cin >> n;     for (int i = 0; i < n; i++) {       long long int x, y;       cin >> x >> y;       y = y - x * x;       points.push_back({x, y});     }     sort(points.begin(), points.end(), comp);     int sz = 1;     hull.push_back(points[0]);     for (int i = 1; i < points.size(); i++) {       while (sz >= 2 && cross(hull[sz - 2], hull[sz - 1], points[i]))         hull.pop_back(), sz--;       hull.push_back(points[i]);       sz++;     }     int ans = 0;     for (int i = 0; i < sz - 1; i++) {       if (hull[i].first != hull[i + 1].first) ans++;     }     cout << ans << endl;   }   