CodeForces 560B
题意:给出边框大小和两幅画,问能不能把两幅画放进去。画可以旋转。
解题思路:两幅画要放进去,无外乎就是左右和上下两种方式,然后旋转画看看是否存在一种可行放法。
/*************************************************************************
> File Name: 0722b.cpp
> Author: Narsh
>
> Created Time: 2016年07月22日 星期五 18时40分33秒
************************************************************************/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
int k,n,m,a1,b1,a2,b2;
int max(int a,int b) {
if (a > b) return a;
return b;
}
bool flag;
int main() {
scanf("%d%d",&n,&m);
flag=false;
scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
if ((a1+a2) <= n && max(b1,b2) <= m) flag = true;
if (max(a1,a2) <= n && (b1+b2) <= m) flag = true;
k = a1;a1= b1;b1=k;
if ((a1+a2) <= n && max(b1,b2) <= m) flag = true;
if (max(a1,a2) <= n && (b1+b2) <= m) flag = true;
k = a2; a2 = b2; b2 =k;
if ((a1+a2) <= n && max(b1,b2) <= m) flag = true;
if (max(a1,a2) <= n && (b1+b2) <= m) flag = true;
k = a1; a1 = b1;b1= k;
if ((a1+a2) <= n && max(b1,b2) <= m) flag = true;
if (max(a1,a2) <= n && (b1+b2) <= m) flag = true;
if (flag) printf("YES\n");
else printf("NO\n");
}