#P1069. 蹦蹦炸弹

蹦蹦炸弹

题目描述

众所周知,可莉的技能是蹦蹦炸弹。蹦蹦炸弹爆炸后,一个范围内的怪物/生物都会受到伤害。可莉往平面内扔了两颗炸弹。第一颗炸弹位于 (x1,y1)(x​_1,y​_1) ​处,爆炸后,会往东、南、西、北四个方向各扩散 aa 格,形成一个边长为 2a2a 的正方形,显然这个正方形的中心点在 (x1,y1)(x​_1,y​_1) ​处;第二颗炸弹位于 (x2,y2)(x​_2,y​_2) ​处,爆炸后,会往东、南、西、北四个方向各扩散 bb 格,形成一个边长为 2b2b 的正方形,显然这个正方形的中心点在 (x2,y2)(x​_2,y​_2) ​处。两颗炸弹爆炸后,可能有重叠部分,可莉希望你帮她求出重叠部分包含多少个格点。

输入格式

两行。

第一行,三个整数 x1x_1​,y1y_1aa,表示可莉往 (x1,y1)(x​_1,y​_1) 处扔了一颗扩散 aa 格的炸弹。

第二行,三个整数 x2x_2​,y2y_2bb,表示可莉往 (x2,y2)(x​_2,y​_2) 处扔了一颗扩散 bb 格的炸弹。

炸弹扩散的范围可能在任意象限。

输出格式

一行一个整数表示重叠部分包含的格点数。

2 2 1
3 3 2
9
-6 -9 2
19 21 8
0

样例解释

对于样例 11,第一颗炸弹爆炸形成的正方形左上角在 (1,3)(1,3) 处,右下角在 (3,1)(3,1) 处;第二颗炸弹爆炸形成的正方形左上角在 (1,5)(1,5) 处,右下角在 (5,1)(5,1) 处,重叠部分包含的格点数为 99

数据范围

本题共 2020 个测试点,每个测试点 55 分。

对于测试点 131-3aabb 有一个为 00

对于测试点 474-7,炸弹扩散的范围仅在第一象限中。

对于测试点 8148-14,炸弹扩散的范围仅在一个象限中。

对于测试点 1121-121000x1,y1,x2,y21000-1000 \le x_1​,y​_1​,x​_2​,y​_2​ \le 10000a,b1000 \le a,b \le 100

对于测试点 131613-16105x1,y1,x2,y2105-10​^5 \le x​_1​,y​_1​,x​_2​,y_2​ \le 10​^50a,b1050 \le a,b \le 10​^5​。

对于测试点 172017-20105x1,y1,x2,y2105-10​^5 \le x​_1​,y​_1​,x​_2​,y_2​ \le 10​^50a,b1090 \le a,b \le 10​^9​。

第一次数据增强(2024.8.122024.8.12):测试点 132013-20a,ba,b 的数据范围由 0a,b1040 \le a,b \le 10​^4 增强到 0a,b1050 \le a,b \le 10​^5,其他不变,时间复杂度 O(a2+b2)\text{O}(a^2+b^2) 的算法无法通过。

第二次数据增强(2024.8.162024.8.16):测试点 172017-20a,ba,b 的数据范围由 0a,b1050 \le a,b \le 10​^5 增强到 0a,b1090 \le a,b \le 10​^9,其他不变,时间复杂度 O(a+b)\text{O}(a+b) 的算法无法通过。

本题强制使用时间复杂度为 O(1)\text{O}(1) 的算法。