天天看點

[BASIC-18] 矩形面積交

基礎練習 矩形面積交  

時間限制:1.0s   記憶體限制:512.0MB

問題描述

  平面上有兩個矩形,它們的邊平行于直角坐标系的X軸或Y軸。對于每個矩形,我們給出它的一對相對頂點的坐标,請你程式設計算出兩個矩形的交的面積。

輸入格式

  輸入僅包含兩行,每行描述一個矩形。

  在每行中,給出矩形的一對相對頂點的坐标,每個點的坐标都用兩個絕對值不超過10^7的實數表示。

輸出格式

  輸出僅包含一個實數,為交的面積,保留到小數後兩位。

樣例輸入

1 1 3 3

2 2 4 4

樣例輸出

1.00

分析:

1、需要注意的有:一個矩形有兩對相對頂點,題目中沒有具體說明給的是哪一對,是以都要考慮;輸入資料中也沒有說明相對頂點的輸入順序,這點也要注意到

2、針對 1 中注意事項,我們可以分情況讨論,也可以采取一種政策綜合處理:比如說給出的一組坐标是 ( x1 ,y1 ) ( x2 ,y2 ) ,不管這組坐标的相對位置如何,我們都可以得到

主對角線上的相對頂點坐标 ( min ( x1 ,x2 ) ,max ( y1 ,y2 ) ) ( max ( x1 ,x2 ) ,min ( y1 ,y2 ) ) 或者是副對角線上的相對頂點坐标 ( min ( x1 ,x2 ) ,min ( y1 ,y2 ) ) ( max ( x1 ,x2 ) ,max ( y1 ,y2 ) ) ,這裡我得到的是副對角線上的相對頂點坐标

3、假設我們通過 2 中綜合處理的思想,已經得到副對角線上的相對頂點坐标 ( x1 ,y1 ) ( x2 ,y2 ) 和 ( a1 ,b1 ) ( a2 ,b2 ) 。注意!得到的坐标是有順序的,( x1 ,y1 ) ( a1 ,b1 ) 始終是左下角,( x2 ,y2 ) ( a2 ,b2 ) 始終是右上角

4、通過 3 中得到的坐标,我們又可以得到矩形相交部分的坐标(暫時假設有相交的部分):( max ( x1 ,a1 ) ,max ( y1 ,b1 ) ) ( min ( x2 ,a2 ) ,min ( y2 ,b2 ) )。注意,這樣得到的坐标也是有順序的,( max ( x1 ,a1 ),max ( y1 ,b1 ) ) 是左下角,( min ( x2 ,a2 ),min ( y2 ,b2 ) ) 是右上角

5、判斷矩形是否有相交的部分:利用 4 中得到的坐标資料,如果 max ( x1 ,a1 ) > min ( x2 ,a2 ) 或者 max ( y1 ,b1 ) > min ( y2 ,b2 ) ,就說明矩形之間沒有相交的部分,反之則有