平面上有个两个矩形 R1 和 R2,它们各边都与坐标轴平行。设 (x1, y1) 和(x2, y2) 依次是 R1 的左下角和右上角坐标,(x3, y3) 和 (x4, y4) 依次是 R2 的左下角和右上角坐标,请你计算 R1 和 R2 的总面积是多少?
注意:如果 R1 和 R2 有重叠区域,重叠区域的面积只计算一次。
import java.util.Arrays;
import java.util.Scanner;
public class L4n {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int arr[][]=new int[2][4];
int brr[]=new int[4];
long area=0;
long s1=0;
long s2=0;
int l=0;
int h=0;
for(int i=0;i<2;i++) {
for(int j=0;j<4;j++) {
arr[i][j]=sc.nextInt();
}
}
s1=(arr[0][2]-arr[0][0])*(arr[0][3]-arr[0][1]);
s2=(arr[1][2]-arr[1][0])*(arr[1][3]-arr[1][1]);
if(arr[0][2]<=arr[1][0]||arr[0][0]>=arr[1][2]) {
area=s1+s2;
}
else {
if(arr[0][1]>=arr[1][3]||arr[0][3]<=arr[1][1]) {
area=s1+s2;
}
else {
brr[0]=arr[0][0];
brr[1]=arr[0][2];
brr[2]=arr[1][0];
brr[3]=arr[1][2];
Arrays.sort(brr);
l=brr[2]-brr[1];
brr[0]=arr[0][1];
brr[1]=arr[0][3];
brr[2]=arr[1][1];
brr[3]=arr[1][3];
Arrays.sort(brr);
h=brr[2]-brr[1];
area=s1+s2-l*h;
}
}
System.out.println(area);
}
}