1 solutions
-
0
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); int N=cin.nextInt();long[][] tt=new long[N][8]; for(int i=0;i<N;i++) { tt[i][0]=cin.nextInt(); tt[i][1]=cin.nextInt(); tt[i][2]=cin.nextInt(); tt[i][3]=cin.nextInt(); tt[i][4]=cin.nextInt(); tt[i][5]=cin.nextInt(); tt[i][6]=cin.nextInt(); tt[i][7]=cin.nextInt(); } for(int i=0;i<N;i++) { long ax1=tt[i][0]; long ay1=tt[i][1]; long bx1=tt[i][2]; long by1=tt[i][3]; long ax2=tt[i][4]; long ay2=tt[i][5]; long bx2=tt[i][6]; long by2=tt[i][7]; long minax,minay,maxax,maxay,minbx,minby,maxbx,maxby; long subx1,subx2,subx,suby1,suby2,suby; if(ax1>ax2) { maxax=ax1; minax=ax2; } else { maxax=ax2; minax=ax1; } if(ay1>ay2) { maxay=ay1; minay=ay2; } else { maxay=ay2; minay=ay1; } if(bx1>bx2) { maxbx=bx1; minbx=bx2; } else { maxbx=bx2; minbx=bx1; } if(by1>by2) { maxby=by1; minby=by2; } else { maxby=by2; minby=by1; } if(maxax<=minbx||minax>=maxbx||maxay<=minby||minay>=maxby) { System.out.println(Math.abs(ax2-ax1)*Math.abs(ay2-ay1)+Math.abs(bx2-bx1)*Math.abs(by2-by1)); } else { if(minax>=minbx&&maxax<=maxbx) { subx=Math.abs(ax2-ax1); } else if(minbx>=minax&&maxbx<=maxax) { subx=Math.abs(bx2-bx1); } else { subx1=Math.abs(maxax-minbx); subx2=Math.abs(maxbx-minax); if(subx1<subx2) { subx=subx1; } else { subx=subx2; } } if(minay>=minby&&maxay<=maxby) { suby=Math.abs(ay2-ay1); } else if(minby>=minay&&maxby<=maxay) { suby=Math.abs(by2-by1); } else{ suby1=Math.abs(maxay-minby); suby2=Math.abs(maxby-minay); if(suby1<suby2) { suby=suby1; } else { suby=suby2; } } System.out.println(Math.abs(ax2-ax1)*Math.abs(ay2-ay1)+Math.abs(bx2-bx1)*Math.abs(by2-by1)-subx*suby); } } } }
- 1
Information
- ID
- 18784
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- (None)
- # Submissions
- 0
- Accepted
- 0
- Uploaded By