func_code_string: #include <bits/stdc++.h>   using namespace std;   struct node {     long long x, y;     int id;     bool operator<(const node& b) const {       if (y != b.y)         return y < b.y;       else         return x < b.x;     }   } a[210000], b[210000], c, d[210000];   vector<node> q;   int n, num, last;   int ans[210000];   set<node> s;   int main() {     cin >> n;     for (int i = 1; i <= n; i++)       cin >> a[i].x >> a[i].y, a[i].id = i, d[i] = a[i];     sort(a + 1, a + 1 + n);     for (int i = n; i >= 1; i--)       if (a[i].x > last) last = a[i].x, b[++num] = a[i];     reverse(b + 1, b + 1 + num);     for (int i = 1; i <= num; i++) {       while (q.size() > 1) {         node c = q[q.size() - 1], d = q[q.size() - 2];         if ((c.y - d.y) * d.x * b[i].y * (c.x - b[i].x) <             (b[i].y - c.y) * b[i].x * d.y * (d.x - c.x))           q.pop_back();         else           break;       }       q.push_back(b[i]);     }     num = 0;     for (int i = 0; i < q.size(); i++) s.insert(q[i]);     for (int i = 1; i <= n; i++)       if (s.count(d[i])) printf( %d  , i);     return 0;   }   