#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
const long long INF = (long long)4e18;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
if (FILE *f = fopen("dimghinh.inp","r")) {
fclose(f);
freopen("dimghinh.inp","r",stdin);
freopen("dimghinh.out","w",stdout);
}
int n;
if(!(cin >> n)) return 0;
long long UL = -INF, UR = INF; // u in (UL, UR)
long long VL = -INF, VR = INF; // v in (VL, VR)
for (int i = 0; i < n; ++i) {
long long xA,yA,xB,yB,xC,yC,xD,yD;
cin >> xA>>yA >> xB>>yB >> xC>>yC >> xD>>yD;
long long uA = xA + yA, vA = xA - yA;
long long uB = xB + yB, vB = xB - yB;
long long uC = xC + yC, vC = xC - yC;
long long uD = xD + yD, vD = xD - yD;
long long umin = min( min(uA,uB), min(uC,uD) );
long long umax = max( max(uA,uB), max(uC,uD) );
long long vmin = min( min(vA,vB), min(vC,vD) );
long long vmax = max( max(vA,vB), max(vC,vD) );
UL = max(UL, umin);
UR = min(UR, umax);
VL = max(VL, vmin);
VR = min(VR, vmax);
}
// không tính biên
if (UR - UL <= 1 || VR - VL <= 1) {
cout << 0 << '\n';
return 0;
}
long long Mu = UR - UL - 1; // số u nguyên bên trong
long long Mv = VR - VL - 1; // số v nguyên bên trong
auto count_even = [](long long L, long long R) -> long long {
if (L > R) return 0;
long long len = R - L + 1;
bool L_even = ((L & 1) == 0);
return (len + (L_even ? 1 : 0)) / 2;
};
long long uL = UL + 1, uR = UR - 1;
long long vL = VL + 1, vR = VR - 1;
long long eu = count_even(uL, uR);
long long ev = count_even(vL, vR);
long long ou = (uR >= uL ? (uR - uL + 1) : 0) - eu;
long long ov = (vR >= vL ? (vR - vL + 1) : 0) - ev;
long long ans = eu * ev + ou * ov; // cùng parity
cout << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwpjb25zdCBsb25nIGxvbmcgSU5GID0gKGxvbmcgbG9uZyk0ZTE4OwoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGlmIChGSUxFICpmID0gZm9wZW4oImRpbWdoaW5oLmlucCIsInIiKSkgewogICAgICAgIGZjbG9zZShmKTsKICAgICAgICBmcmVvcGVuKCJkaW1naGluaC5pbnAiLCJyIixzdGRpbik7CiAgICAgICAgZnJlb3BlbigiZGltZ2hpbmgub3V0IiwidyIsc3Rkb3V0KTsKICAgIH0KCiAgICBpbnQgbjsgCiAgICBpZighKGNpbiA+PiBuKSkgcmV0dXJuIDA7CgogICAgbG9uZyBsb25nIFVMID0gLUlORiwgVVIgPSBJTkY7IC8vIHUgaW4gKFVMLCBVUikKICAgIGxvbmcgbG9uZyBWTCA9IC1JTkYsIFZSID0gSU5GOyAvLyB2IGluIChWTCwgVlIpCgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBsb25nIGxvbmcgeEEseUEseEIseUIseEMseUMseEQseUQ7CiAgICAgICAgY2luID4+IHhBPj55QSA+PiB4Qj4+eUIgPj4geEM+PnlDID4+IHhEPj55RDsKCiAgICAgICAgbG9uZyBsb25nIHVBID0geEEgKyB5QSwgdkEgPSB4QSAtIHlBOwogICAgICAgIGxvbmcgbG9uZyB1QiA9IHhCICsgeUIsIHZCID0geEIgLSB5QjsKICAgICAgICBsb25nIGxvbmcgdUMgPSB4QyArIHlDLCB2QyA9IHhDIC0geUM7CiAgICAgICAgbG9uZyBsb25nIHVEID0geEQgKyB5RCwgdkQgPSB4RCAtIHlEOwoKICAgICAgICBsb25nIGxvbmcgdW1pbiA9IG1pbiggbWluKHVBLHVCKSwgbWluKHVDLHVEKSApOwogICAgICAgIGxvbmcgbG9uZyB1bWF4ID0gbWF4KCBtYXgodUEsdUIpLCBtYXgodUMsdUQpICk7CiAgICAgICAgbG9uZyBsb25nIHZtaW4gPSBtaW4oIG1pbih2QSx2QiksIG1pbih2Qyx2RCkgKTsKICAgICAgICBsb25nIGxvbmcgdm1heCA9IG1heCggbWF4KHZBLHZCKSwgbWF4KHZDLHZEKSApOwoKICAgICAgICBVTCA9IG1heChVTCwgdW1pbik7CiAgICAgICAgVVIgPSBtaW4oVVIsIHVtYXgpOwogICAgICAgIFZMID0gbWF4KFZMLCB2bWluKTsKICAgICAgICBWUiA9IG1pbihWUiwgdm1heCk7CiAgICB9CgogICAgLy8ga2jDtG5nIHTDrW5oIGJpw6puCiAgICBpZiAoVVIgLSBVTCA8PSAxIHx8IFZSIC0gVkwgPD0gMSkgewogICAgICAgIGNvdXQgPDwgMCA8PCAnXG4nOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIGxvbmcgbG9uZyBNdSA9IFVSIC0gVUwgLSAxOyAvLyBz4buRIHUgbmd1ecOqbiBiw6puIHRyb25nCiAgICBsb25nIGxvbmcgTXYgPSBWUiAtIFZMIC0gMTsgLy8gc+G7kSB2IG5ndXnDqm4gYsOqbiB0cm9uZwoKICAgIGF1dG8gY291bnRfZXZlbiA9IFtdKGxvbmcgbG9uZyBMLCBsb25nIGxvbmcgUikgLT4gbG9uZyBsb25nIHsKICAgICAgICBpZiAoTCA+IFIpIHJldHVybiAwOwogICAgICAgIGxvbmcgbG9uZyBsZW4gPSBSIC0gTCArIDE7CiAgICAgICAgYm9vbCBMX2V2ZW4gPSAoKEwgJiAxKSA9PSAwKTsKICAgICAgICByZXR1cm4gKGxlbiArIChMX2V2ZW4gPyAxIDogMCkpIC8gMjsKICAgIH07CgogICAgbG9uZyBsb25nIHVMID0gVUwgKyAxLCB1UiA9IFVSIC0gMTsKICAgIGxvbmcgbG9uZyB2TCA9IFZMICsgMSwgdlIgPSBWUiAtIDE7CgogICAgbG9uZyBsb25nIGV1ID0gY291bnRfZXZlbih1TCwgdVIpOwogICAgbG9uZyBsb25nIGV2ID0gY291bnRfZXZlbih2TCwgdlIpOwogICAgbG9uZyBsb25nIG91ID0gKHVSID49IHVMID8gKHVSIC0gdUwgKyAxKSA6IDApIC0gZXU7CiAgICBsb25nIGxvbmcgb3YgPSAodlIgPj0gdkwgPyAodlIgLSB2TCArIDEpIDogMCkgLSBldjsKCiAgICBsb25nIGxvbmcgYW5zID0gZXUgKiBldiArIG91ICogb3Y7IC8vIGPDuW5nIHBhcml0eQogICAgY291dCA8PCBhbnMgPDwgJ1xuJzsKICAgIHJldHVybiAwOwp9Cg==