基礎練習 矩形面積交
時間限制: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 ) ,就說明矩形之間沒有相交的部分,反之則有