func_code_string: #include <bits/stdc++.h>   using namespace std;   int signum(long long a) { return (a == 0 ? 0 : (a > 0 ? 1 : -1)); }   int dir(pair<long long, long long>& a, pair<long long, long long>& b,           pair<long long, long long>& c) {     return signum((b.first - a.first) * (c.second - a.second) -                   (b.second - a.second) * (c.first - a.first));   }   bool inside(vector<pair<long long, long long> >& hull,               pair<long long, long long>& p) {     if (dir(hull[0], hull[1], p) != 1) return false;     if (dir(hull[0], hull[hull.size() - 1], p) != -1) return false;     int l = 1, r = hull.size() - 2;     while (l < r) {       int m = (l + r) / 2 + 1;       if (dir(hull[0], hull[m], p) == -1)         r = m - 1;       else         l = m;     }     return dir(hull[l], hull[l + 1], p) == 1;   }   int main() {     cin.sync_with_stdio(false);     cin.tie(0);     int n, m;     cin >> n;     vector<pair<long long, long long> > A(n);     for (pair<long long, long long>& a : A) cin >> a.first >> a.second;     reverse(A.begin(), A.end());     cin >> m;     vector<pair<long long, long long> > B(m);     bool sol = true;     for (pair<long long, long long>& a : B) {       cin >> a.first >> a.second;       sol &= inside(A, a);     }     cout << (sol ?  YES  :  NO ) << endl;   }   