1234567891011121314151617181920212223242526272829 |
- func computeArea(A int, B int, C int, D int, E int, F int, G int, H int) int {
- return areaOf(A, B, C, D) + areaOf(E, F, G, H) - overlap(A, C, E, G)*overlap(B, D, F, H)
- }
- func overlap(a1, a2, b1, b2 int) int {
- l := a2 - a1 + b2 - b1 - (maxInt(a2, b2) - minInt(a1, b1))
- if l < 0 {
- return 0
- }
- return l
- }
- func areaOf(A, B, C, D int) int {
- return (C - A) * (D - B)
- }
- func maxInt(x, y int) int {
- if x < y {
- return y
- }
- return x
- }
- func minInt(x, y int) int {
- if x < y {
- return x
- }
- return y
- }
|