func_code_string: #include <bits/stdc++.h>   using namespace std;   struct people {     long long a, b, id;   } p[300010];   long long n, s[300010], t;   bool v[300010], ans[300010];   bool cmp(people a, people b) { return a.a == b.a ? a.b > b.b : a.a > b.a; }   long double check(people a, people b) {     return (long double)a.a * b.a * (b.b - a.b) / (b.a - a.a) / b.b / a.b;   }   int main() {     scanf( %lld , &n);     for (int i = 1; i <= n; i++) scanf( %lld%lld , &p[i].a, &p[i].b), p[i].id = i;     sort(p + 1, p + n + 1, cmp);     s[1] = 1, t = 1;     long long maxb = p[1].b;     for (int i = 2; i <= n; i++)       if (p[i].b <= maxb)         v[i] = 1;       else         maxb = p[i].b;     for (int i = 2; i <= n; i++) {       if (v[i] || check(p[i], p[s[t]]) > 0) continue;       while (t > 1 && check(p[i], p[s[t]]) < check(p[s[t - 1]], p[s[t]])) t--;       s[++t] = i;     }     for (int i = 1; i <= t; i++) {       ans[p[s[i]].id] = 1;       for (int j = s[i] + 1; j <= n && p[s[i]].a == p[j].a && p[s[i]].b == p[j].b;            j++)         ans[p[j].id] = 1;     }     for (int i = 1; i <= n; i++)       if (ans[i]) printf( %d  , i);     return 0;   }   