func_code_string: #include <bits/stdc++.h>   using namespace std;   complex<double> r() {     double a, b;     cin >> a >> b;     return {a, b};   }   double cross(complex<double> a, complex<double> b) {     return (conj(a) * b).imag();   }   double orient(complex<double> a, complex<double> b, complex<double> c) {     return cross(b - a, c - a);   }   void up(vector<complex<double> > &st, complex<double> p) {     while ((long long)(st).size() >= 2 && orient(st.end()[-2], st.back(), p) >= 0)       st.pop_back();     st.push_back(p);   }   struct line {     complex<double> d;     double c;     line(complex<double> a, complex<double> b) : d(b - a), c(cross(d, a)) {}   };   complex<double> inter(line l1, line l2) {     return (l1.c * l2.d - l2.c * l1.d) / cross(l1.d, l2.d);   }   signed main() {     ios::sync_with_stdio(false);     cin.tie(NULL);     long long n;     complex<double> obj;     cin >> n;     obj = r();     vector<complex<double> > ps(n);     double mx = 0, my = 0;     for (long long i = 0; i < (n); i++) {       ps[i] = r();       mx = max(mx, (ps[i].real()));       my = max(my, (ps[i].imag()));     }     ps.push_back({0.0, my});     sort(ps.begin(), ps.end(), [](complex<double> a, complex<double> b) {       return make_tuple(a.real(), -a.imag()) < make_tuple(b.real(), -b.imag());     });     vector<complex<double> > hull;     for (complex<double> p : ps) up(hull, p);     hull.push_back({mx, 0.0});     long long i = upper_bound(hull.begin(), hull.end(), obj,                               [](complex<double> a, complex<double> b) {                                 return cross(a, b) < 0;                               }) -                   hull.begin() - 1;     complex<double> a = inter(line(0, obj), line(hull[i], hull[i + 1]));     cout << fixed << setprecision(8) << obj.real() / a.real() <<   n ;   }   