给定矩形A,B,C的左下角,右上角坐标,保证A,B矩形不重叠,问A,B矩形未被C矩形遮挡的面积是多少
cout << (b1 - d1)*(a1 - c1) + (b2 - d2)*(a2 - c2) - dis(b1, d1, b, d)*dis(a1, c1, a, c)*dis(b2, d2, b, d)*dis(a2, c2, a,c);
int dis(int a, int b, int c, int d) { return max(0, min(b, d) - max(a, c)); }
这个又臭又长的式子感觉没问题,hack:
input:
1 2 3 5
6 0 10 4
2 1 8 3
output:
17
wrong output
18