func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename G1, typename G2 = G1, typename G3 = G1>   struct triple {     G1 first;     G2 second;     G3 T;   };   const long double eps = 1e-12;   int sign(long double x) { return x < -eps ? -1 : x > eps; }   int dblcmp(long double x, long double y) { return sign(x - y); }   long double dot(complex<long double> a, complex<long double> b) {     return real(conj(a) * b);   }   long double cross(complex<long double> a, complex<long double> b) {     return imag(conj(a) * b);   }   struct Point {     complex<long double> p;     int id;     long double operator*(const Point o) const { return cross(this->p, o.p); }     Point operator-(const Point o) const { return {p - o.p}; }     bool operator<(const Point o) const {       if (dblcmp(p.real(), o.p.real()) == 0)         return dblcmp(p.imag(), o.p.imag()) < 0;       return dblcmp(p.real(), o.p.real()) < 0;     }   };   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     vector<vector<int>> mp1(n);     map<pair<long long, long long>, int> mp2;     vector<Point> v;     int c = 0;     for (int i = 0; i < n; i++) {       int x, y;       cin >> x >> y;       if (mp2.count({x, y}) == 0) {         v.push_back({{10000.0 / x, 10000.0 / y}, c});         mp2[{x, y}] = c++;       }       mp1[mp2[{x, y}]].push_back(i + 1);     }     sort(v.begin(), v.end());     vector<Point> hull;     for (int i = 0; i < c; i++) {       while (hull.size() > 1 &&              dblcmp((hull.end()[-1] - hull.end()[-2]) * (v[i] - hull.end()[-1]),                     0) < 0)         hull.pop_back();       hull.push_back(v[i]);     }     while (hull.size() > 1 &&            dblcmp(hull.end()[-2].p.imag(), hull.end()[-1].p.imag()) <= 0)       hull.pop_back();     vector<int> ans;     for (auto &i : hull)       for (auto j : mp1[i.id]) ans.push_back(j);     sort(ans.begin(), ans.end());     for (int i = 0; i < ans.size(); i++)       cout << ans[i] <<    n [i == ans.size() - 1];     return 0;   }   