func_code_string: #include <bits/stdc++.h>   using namespace std;   struct quad {     pair<int, int> points[4];     void read() {       for (int i = 0; i < 4; i++) {         cin >> points[i].first >> points[i].second;       }     }     int cross(int a, int b, int c, int d) { return a * d - b * c; }     int sgn(int x) {       if (x < 0) return -1;       if (x > 0) return 1;       return 0;     }     bool contains(int x, int y) {       int side = 0;       for (int i = 0; i < 4; i++) {         int j = (i + 1) % 4;         int a = points[j].first - points[i].first;         int b = points[j].second - points[i].second;         int c = x - points[i].first;         int d = y - points[i].second;         int v = sgn(cross(a, b, c, d));         if (v == 0) {           continue;         }         if (side == 0) {           side = v;         } else if (side != v) {           return false;         }       }       return true;     }   };   int main() {     quad A, B;     A.read();     B.read();     for (int x = -100; x <= 100; x++) {       for (int y = -100; y <= 100; y++) {         if (A.contains(x, y) && B.contains(x, y)) {           cout <<  YES n ;           return 0;         }       }     }     cout <<  NO n ;     return 0;   }   