分为六种可能:
1. 全覆盖
2. 覆盖上面
3. 覆盖下面
4. 覆盖左边
5. 覆盖右边
6. 只覆盖了一个角,以及没有覆盖
#include <bits/stdc++.h>
using namespace std;
int x[5], y[5];
int main() {
for (int i = 1; i <= 4; i++) scanf("%d%d", &x[i], &y[i]);
if (x[4] >= x[2] && x[3] <= x[1] && y[4] >= y[2] && y[3] <= y[1]) puts("0"); //完全覆盖
else if (x[3] <= x[1] && y[3] <= y[1] && y[4] > y[1] && x[4] >= x[2]) printf("%d", (x[2] - x[1]) * (y[2] - y[4])); //上方未覆盖
else if (y[3] < y[2] && x[3] <= x[1] && y[4] >= y[2] && x[4] >= x[2]) printf("%d", (x[2] - x[1]) * (y[3] - y[1])); //下方未覆盖
else if (x[4] > x[1] && x[3] <= x[1] && y[4] >= y[2] && y[3] <= y[1]) printf("%d", (x[2] - x[4]) * (y[2] - y[1])); //右侧未覆盖
else if (x[3] < x[2] && x[4] >= x[2] && y[4] >= y[2] && y[3] <= y[1]) printf("%d", (x[3] - x[1]) * (y[2] - y[1])); //左侧未覆盖
else printf("%d", (x[2] - x[1]) * (y[2] - y[1]));//未覆盖以及只覆盖了一个角
return 0;
}