题目描述
众所周知,可莉的技能是蹦蹦炸弹。蹦蹦炸弹爆炸后,一个范围内的怪物/生物都会受到伤害。可莉往平面内扔了两颗炸弹。第一颗炸弹位于 (x1,y1) 处,爆炸后,会往东、南、西、北四个方向各扩散 a 格,形成一个边长为 2a 的正方形,显然这个正方形的中心点在 (x1,y1) 处;第二颗炸弹位于 (x2,y2) 处,爆炸后,会往东、南、西、北四个方向各扩散 b 格,形成一个边长为 2b 的正方形,显然这个正方形的中心点在 (x2,y2) 处。两颗炸弹爆炸后,可能有重叠部分,可莉希望你帮她求出重叠部分包含多少个格点。
输入格式
两行。
第一行,三个整数 x1,y1,a,表示可莉往 (x1,y1) 处扔了一颗扩散 a 格的炸弹。
第二行,三个整数 x2,y2,b,表示可莉往 (x2,y2) 处扔了一颗扩散 b 格的炸弹。
炸弹扩散的范围可能在任意象限。
输出格式
一行一个整数表示重叠部分包含的格点数。
2 2 1
3 3 2
9
-6 -9 2
19 21 8
0
样例解释
对于样例 1,第一颗炸弹爆炸形成的正方形左上角在 (1,3) 处,右下角在 (3,1) 处;第二颗炸弹爆炸形成的正方形左上角在 (1,5) 处,右下角在 (5,1) 处,重叠部分包含的格点数为 9。
数据范围
本题共 20 个测试点,每个测试点 5 分。
对于测试点 1−3,a 和 b 有一个为 0。
对于测试点 4−7,炸弹扩散的范围仅在第一象限中。
对于测试点 8−14,炸弹扩散的范围仅在一个象限中。
对于测试点 1−12,−1000≤x1,y1,x2,y2≤1000,0≤a,b≤100。
对于测试点 13−16,−105≤x1,y1,x2,y2≤105,0≤a,b≤105。
对于测试点 17−20,−105≤x1,y1,x2,y2≤105,0≤a,b≤109。
第一次数据增强(2024.8.12):测试点 13−20 的 a,b 的数据范围由 0≤a,b≤104 增强到 0≤a,b≤105,其他不变,时间复杂度 O(a2+b2) 的算法无法通过。
第二次数据增强(2024.8.16):测试点 17−20 的 a,b 的数据范围由 0≤a,b≤105 增强到 0≤a,b≤109,其他不变,时间复杂度 O(a+b) 的算法无法通过。
本题强制使用时间复杂度为 O(1) 的算法。