func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 1e9 + 7;   const long long INFL = 1e18 + 123;   const double PI = atan2(0, -1);   mt19937 tw(960172);   long long rnd(long long x, long long y) {     static uniform_int_distribution<long long> d;     return d(tw) % (y - x + 1) + x;   }   int cross(int x1, int y1, int x2, int y2) { return x1 * y2 - y1 * x2; }   bool inside(int x, int y, vector<pair<int, int> > poly) {     int s1 = 0, s2 = 0;     for (int i = 0; i < ((int)(poly).size()); ++i) {       int next = (i + 1) % ((int)(poly).size());       int tmp = cross(poly[i].first - x, poly[i].second - y, poly[next].first - x,                       poly[next].second - y);       s1 += tmp;       s2 += abs(tmp);     }     return abs(s1) == s2;   }   void solve() {     vector<pair<int, int> > poly[2];     for (int i = 0; i < 2; ++i) {       for (int j = 0; j < 4; ++j) {         int x, y;         cin >> x >> y;         poly[i].push_back({x, y});       }     }     for (int x = -150; x <= 150; ++x) {       for (int y = -150; y <= 150; ++y) {         if (inside(x, y, poly[0]) && inside(x, y, poly[1])) {           cout <<  YES n ;           return;         }       }     }     cout <<  NO n ;   }   int main() {     cerr << fixed << setprecision(15);     cout << fixed << setprecision(15);     ios::sync_with_stdio(false);     int tests = 1;     for (int it = 1; it <= tests; ++it) {       solve();     }     return 0;   }   