題目鏈接:http://www.noobdream.com/DreamJudge/Issue/page/1211/#ios
本人想法:題目給定矩形任意對角線的兩個點(並無仔細規定是正對角線仍是反對角線的兩個端點)。spa
無論給定的是哪兩個點,都能得出正對角線的左下角和右上角的座標(固然選擇這個只是做爲一個參考,能夠選擇其餘),code
而後就能夠根據座標來判斷兩個矩形是相交、相離、仍是包含(這是包含這點把我搞的好辛苦)。blog
#include <iostream> using namespace std; int x1,y1,x2,y2,x3,y3,x4,y4; int main() { while(~scanf("%d%d%d%d%d%d%d%d", &x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4)) { // 輸入任意對角線座標後, 即可以拿到咱們想要的數據(就是正對角線的左下角和右上角的座標) if (x1 > x2) swap(x1, x2); if (y1 > y2) swap(y1, y2); if (x3 > x4) swap(x3, x4); if (y3 > y4) swap(y3, y4); // 排除矩形相離和包含 if (y2 < y3 || x2 < x3 || y1 > y4 || x1 > x4 || (x1 < x3 && y1 < y3 && x2 > x4 && y2 > y4)) cout << "NO" << endl; else { cout << "YES" << endl; } } return 0; }
歡迎評論。io