<p>Given the coordinates of two <strong>rectilinear</strong> rectangles in a 2D plane, return <em>the total area covered by the two rectangles</em>.</p>

<p>The first rectangle is defined by its <strong>bottom-left</strong> corner <code>(ax1, ay1)</code> and its <strong>top-right</strong> corner <code>(ax2, ay2)</code>.</p>

<p>The second rectangle is defined by its <strong>bottom-left</strong> corner <code>(bx1, by1)</code> and its <strong>top-right</strong> corner <code>(bx2, by2)</code>.</p>

<p>&nbsp;</p>
<p><strong class="example">Example 1:</strong></p>
<img alt="Rectangle Area" src="https://assets.leetcode.com/uploads/2021/05/08/rectangle-plane.png" style="width: 700px; height: 365px;" />
<pre>
<strong>Input:</strong> ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by2 = 2
<strong>Output:</strong> 45
</pre>

<p><strong class="example">Example 2:</strong></p>

<pre>
<strong>Input:</strong> ax1 = -2, ay1 = -2, ax2 = 2, ay2 = 2, bx1 = -2, by1 = -2, bx2 = 2, by2 = 2
<strong>Output:</strong> 16
</pre>

<p>&nbsp;</p>
<p><strong>Constraints:</strong></p>

<ul>
	<li><code>-10<sup>4</sup> &lt;= ax1 &lt;= ax2 &lt;= 10<sup>4</sup></code></li>
	<li><code>-10<sup>4</sup> &lt;= ay1 &lt;= ay2 &lt;= 10<sup>4</sup></code></li>
	<li><code>-10<sup>4</sup> &lt;= bx1 &lt;= bx2 &lt;= 10<sup>4</sup></code></li>
	<li><code>-10<sup>4</sup> &lt;= by1 &lt;= by2 &lt;= 10<sup>4</sup></code></li>
</ul>

class Solution:
    def computeArea(self, ax1: int, ay1: int, ax2: int, ay2: int, 
                          bx1: int, by1: int, bx2: int, by2: int) -> int:
        
        # Calculate the area of rectangle A
        areaA = abs(ay2 - ay1) * abs(ax2 - ax1)
        
        # Calculate the area of rectangle B
        areaB = abs(by2 - by1) * abs(bx2 - bx1)

        # Now, let's calculate the overlap area (if any)

        # Find the overlap on the x-axis
        overlap_x1 = max(ax1, bx1)  # Left side of the intersection (max of left edges)
        overlap_x2 = min(ax2, bx2)  # Right side of the intersection (min of right edges)

        # Find the overlap on the y-axis
        overlap_y1 = max(ay1, by1)  # Bottom side of the intersection (max of bottom edges)
        overlap_y2 = min(ay2, by2)  # Top side of the intersection (min of top edges)

        # Check if the rectangles intersect. They do if there's a valid overlap in both dimensions
        if overlap_x1 < overlap_x2 and overlap_y1 < overlap_y2:
            # Calculate the intersection area
            intersection = abs(overlap_x2 - overlap_x1) * abs(overlap_y2 - overlap_y1)
        else:
            # If no intersection, the overlap area is zero
            intersection = 0

        # Total area is the sum of the areas of both rectangles minus the intersection area
        total_area = areaA + areaB - intersection

        return total_area

16500