power oj 2823: 迟早被炸了的炸鸡(在坐标轴里判断两个矩形是否重合)

Description 

悲怜家养了一只非常皮的小三花猫炸鸡,花炸鸡同学在悲怜去实验室学习的时候,上天入地无所不能,经常损坏家具,因为悲怜学长刚刚搬了新家,买了很多东西,地上堆了很多纸箱子,有一天当悲怜毕业的时候,他还想卖出去一些家具回血,所以包装箱并不想扔掉,但是花炸鸡同学对纸箱子特别的感兴趣,而它真的是吃的太胖了落在重合的纸箱子上会把纸箱子压坏(重合的意思是相交的面积>0,箱子是有体积的,所以只要一条边重合也会重叠起来),现在给你两个纸箱子的坐标,悲怜实在是没时间管它了,你能不能帮他算算炸鸡会不会压坏这两个箱子。

Input 

第一行输入包括八个数字x1x1,y1y1,x2x2,y2y2 x3x3,y3y3,x4x4,y4y4,(0≤xi,yi≤1090≤xi,yi≤109) 分别代表第一个纸箱子左上角和右下角的坐标,以及第二个箱子左上角和右下角的坐标。

Output 

输出一行,"YES"或者"NO", 如果炸鸡损坏了箱子,输出"YES",如果炸鸡没有损坏箱子,输出“NO”。

0 4 2 1 2 1 5 0

2 1 5 0 0 4 2 1

0 1 1 0 2 1 4 0

1582 5465 1954 2200 465465 4548 475651 2200

YES

YES

NO

NO

PS:其实原理很简单,不知道的看看代码,然后在纸上画一下就能明白。

AC代码:

#include <iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<map>
#include<queue>
#include<set>
#include<cmath>
#include<stack>
#include<string>
const int maxn=1e6+10;
const int mod=1e9+7;
const int inf=1e8;
#define me(a,b) memset(a,b,sizeof(a))
typedef long long ll;
using namespace std;
int main()
{
    int x1,x2,x3,x4,y1,y2,y3,y4;
    cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
    if(max(x1,x2)<min(x3,x4)||max(y1,y2)<min(y3,y4))
        cout<<"NO"<<endl;
    else if(max(x3,x4)<min(x1,x2)||max(y3,y4)<min(y1,y2))
        cout<<"NO"<<endl;
    else
        cout<<"YES"<<endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41292370/article/details/81568337