func_code_string: #include <bits/stdc++.h>   using namespace std;   int a[4][2];   int b[4][2];   int vis[205][205];   int main() {     bool flag = 0;     int x1, x2, y1, y2;     for (int i = 0; i < 4; i++) {       scanf( %d %d , &a[i][0], &a[i][1]);     }     for (int i = 0; i < 4; i++) {       scanf( %d %d , &b[i][0], &b[i][1]);     }     if (a[0][0] == a[1][0]) {       y1 = min(a[0][1], a[1][1]);       y2 = max(a[0][1], a[1][1]);       x1 = min(a[1][0], a[2][0]);       x2 = max(a[1][0], a[2][0]);     } else {       y1 = min(a[1][1], a[2][1]);       y2 = max(a[1][1], a[2][1]);       x1 = min(a[0][0], a[1][0]);       x2 = max(a[0][0], a[1][0]);     }     for (int i = -100; i <= 100; i++)       for (int j = -100; j <= 100; j++) {         if (i >= x1 && i <= x2 && j >= y1 && j <= y2) {           vis[i + 100][j + 100] = 1;         }       }     if ((b[0][0] + b[0][1]) == (b[1][0] + b[1][1])) {       x1 = min(b[0][1] + b[0][0], b[2][0] + b[2][1]);       x2 = max(b[0][1] + b[0][0], b[2][0] + b[2][1]);       y1 = min(b[0][1] - b[0][0], b[1][1] - b[1][0]);       y2 = max(b[0][1] - b[0][0], b[1][1] - b[1][0]);     } else {       x1 = min(b[0][1] + b[0][0], b[1][0] + b[1][1]);       x2 = max(b[0][1] + b[0][0], b[1][0] + b[1][1]);       y1 = min(b[0][1] - b[0][0], b[2][1] - b[2][0]);       y2 = max(b[0][1] - b[0][0], b[2][1] - b[2][0]);     }     for (int i = -100; i <= 100; i++)       for (int j = -100; j <= 100; j++) {         if (i + j >= x1 && i + j <= x2 && j - i >= y1 && j - i <= y2 &&             vis[i + 100][j + 100]) {           flag = 1;         }       }     if (flag) {       printf( YES n );     } else {       printf( NO n );     }     return 0;   }   