Coderforce 560B-Gerald is into Art

题目大意:给了三个矩形的长和宽,问第一个能否把其他两个装在内部,要求内部之间不重叠,不出界(可重边)?

题目分析:这道题。。。考虑不够全面导致比赛时没有出来。。。当时,就是觉得自己的代码很完美,不可能不对!当时也是较起真儿来啦,全场就我一个人没A这道题,确实有点脑子热!以后再遇到这种情况一定要冷静!要沉着!越急越没用!!!要重新审视自己的算法和代码!!!!!

 

代码如下:

 

# include<iostream>
# include<cstdio>
# include<cmath>
# include<string>
# include<vector>
# include<list>
# include<set>
# include<map>
# include<queue>
# include<cstring>
# include<algorithm>
using namespace std;

# define LL long long
# define REP(i,s,n) for(int i=s;i<n;++i)
# define CL(a,b) memset(a,b,sizeof(a))
# define CLL(a,b,n) fill(a,a+n,b)

const double inf=1e30;
const int INF=1<<30;
const int N=1000;

int a1,b1,a2,b2,a3,b3;

bool ok(int a,int b)
{
    if(a>=a3&&b>=b3) return true;
    if(a>=b3&&b>=a3) return true;
    return false;
}

bool judge()
{
    if(a1*b1<a2*b2+a3*b3) return false;///
    if(a1<b1) swap(a1,b1);///
    if(a2<b2) swap(a2,b2);///
    if(a3<b3) swap(a3,b3);///
    if(b2>a1||a2>a1) return false;///
    if(b3>a1||a3>a1) return false;///
    if(b2+b3>a1) return false;///比赛的时候以上这些都没写,一直过不去
    if(ok(b1,a1-a2)) return true;
    if(ok(b1,a1-b2)) return true;
    if(ok(a1,b1-a2)) return true;
    if(ok(a1,b1-b2)) return true;
    return false;
}

int main()
{
    while(~scanf("%d%d%d%d%d%d",&a1,&b1,&a2,&b2,&a3,&b3))
    {
        if(judge()) printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

  

posted @ 2015-12-18 19:52  20143605  阅读(152)  评论(0编辑  收藏  举报