#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll read(){
char ch;
ll f = 0, r = 0;
ch = getchar();
while(ch > '9' || ch < '0') f |= ch == '-', ch = getchar();
while(ch <= '9' && ch >= '0') r = (r << 3) + (r << 1) + (ch ^ 48), ch = getchar();
return f ? -r : r;
}
ll a = read(), b = read(), c = read(), d = read(), x, y, e, f, g, h, ans, mp[10][10];
int main(){
if(c - a >= 4) x = a + (c - a) / 4 * 4;
else x = a;
if(d - b >= 2) y = b + (d - b) / 2 * 2;
else y = b;
ans = (x - a) / 4 * (d - b) * 4;
mp[1][1] = 2, mp[2][1] = 1, mp[4][1] = 1, mp[1][2] = 1, mp[2][2] = 2, mp[3][2] = 1;
e = ((x % 4) + 4) % 4, f = ((y % 4) + 4) % 4, g = ((c % 4) + 4) % 4, h = ((d % 4) + 4) % 4;
for(ll i = 1; i <= 4; ++i)
for(ll j = 1; j <= 2; ++j) mp[i][j] += mp[i - 1][j];
if(g < e && b != d) ans += (mp[4][(y & 1 ^ 1 + 2) & 1] - mp[e][y & 1 ^ 1] + mp[g][(y & 1 ^ 1 + 2) & 1]) * ((d - b) & 1) + (mp[4][1] - mp[e][1] + mp[g][1] + mp[4][2] - mp[e][2] + mp[g][2]) * ((d - b) / 2);
else if(g > e && b != d) ans += (mp[g][(y & 1 ^ 1 + 2) & 1] - mp[e][(y & 1 ^ 1 + 2) & 1]) * ((d - b) & 1) + (mp[g][1] - mp[e][1] + mp[g][2] - mp[e][2]) * ((d - b) / 2);
printf("%lld", ans);
return 0;
}
ACx60,WAx8,崩溃。
希望是本质错误,不是什么大智的错。