func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e5;   struct P {     long long x, y;     bool a;     P() {}     P(long long _x, long long _y, bool _a) : x(_x), y(_y), a(_a) {}     long long operator^(const P &t) const { return x * t.y - y * t.x; }     bool operator<(const P &t) const {       if (y == t.y) return x < t.x;       return y < t.y;     }     P operator-(const P &t) const { return P(x - t.x, y - t.y, 0); }   } p[N];   int n, m;   bool flag[N];   int st[N], tops;   void granhamScan() {     st[0] = 0;     tops = 1;     for (int i = 1; i < m; ++i) {       while (tops >= 2 && ((p[st[tops - 1]] - p[st[tops - 2]]) ^                            (p[i] - p[st[tops - 1]])) < 0) {         flag[st[tops - 1]] = false;         tops--;       }       st[tops++] = i;       flag[i] = true;     }     for (int i = m - 1; i >= 0; --i) {       if (flag[i]) continue;       while (tops >= 2 && ((p[st[tops - 1]] - p[st[tops - 2]]) ^                            (p[i] - p[st[tops - 1]])) < 0) {         flag[st[tops - 1]] = false;         tops--;       }       st[tops++] = i;       flag[i] = true;     }   }   bool check() {     for (int i = 0; i < tops; ++i) {       if (!p[st[i]].a) return 0;     }     return 1;   }   int main() {     scanf( %d , &n);     for (int i = 0; i < n; ++i) {       int x, y;       scanf( %d%d , &x, &y);       p[i] = P(x, y, 1);     }     scanf( %d , &m);     m += n;     for (int i = n; i < m; ++i) {       int x, y;       scanf( %d%d , &x, &y);       p[i] = P(x, y, 0);     }     sort(p, p + m);     p[m] = p[0];     granhamScan();     if (check())       printf( YES n );     else       printf( NO n );     return 0;   }   