思路:f(c, d) + f(a, b) - f(a, d) - f(c, b)
代码:
cpp
int f(int x, int y){
if(y % 2 == 0){
y = y / 2;
int ans = y * (x / 4) * 8;
x %= 4;
if(x == 1){
ans += y * 3;
}else if(x == 2){
ans += y * 6;
}else if(x == 3){
ans += y * 7;
}
return ans;
}else{
y /= 2;
int ans = y * (x / 4) * 8 + 2 * (x / 4) * 2;
x %= 4;
if(x == 1){
ans += y * 3 + 2;
}else if(x == 2){
ans += y * 6 + 3;
}else if(x == 3){
ans += y * 7 + 3;
}
return ans;
}
}
void solve(){
int a, b, c, d;
cin >> a >> b >> c >> d;
if(a < 0){
int cnt = (-a + 3) / 4;
a += cnt * 4;
c += cnt * 4;
}
if(b < 0){
int cnt = (-b + 3) / 4;
b += cnt * 4;
d += cnt * 4;
}
cout << f(c, d) + f(a, b) - f(a, d) - f(c, b);
}