Codeforces Round #313 (Div. 2) B. Gerald is into Art

原题: http://codeforces.com/problemset/problem/560/B


题目大意:给三个矩形ABC,问能否把B和C放到A里


分析: 这题做了有40分钟, 生怕考虑不周. 其实就是从从ABC各挑出一条边,如果B,C相加小于A,并BC的另一条边分别小于A另一条边的长度. 那么就能放下. 别的放不下. 所以共2*2*2 = 8种情况.

public void solve(int testNumber, InputReader in, OutputWriter out) {
        int[] a = IOUtils.readIntArray(in, 2);
        int[] b = IOUtils.readIntArray(in, 2);
        int[] c = IOUtils.readIntArray(in, 2);
        Arrays.sort(a);
        Arrays.sort(b);
        Arrays.sort(c);
        if (a[0] >= b[0]+c[0] && a[1] >=b[1] && a[1] >= c[1]) {
            out.print("YES");
            return;
        }
        else if (a[1] >= b[1]+c[1] && a[0] >= b[0] && a[0] >= c[0]){
            out.print("YES");
            return;
        }
        else if (a[0] >= b[1]+c[1] && a[1] >= b[0] && a[1] >= c[0]){
            out.print("YES");
            return;
        }
        else if (a[1] >= b[0]+c[0] && a[0] >= b[1] && a[0] >= c[1]){
            out.print("YES");
            return;
        }
        else if (a[1] >= b[1]+c[0] && a[0] >= b[0] && a[0] >= c[1]){
            out.print("YES");
            return;
        }
        else if (a[1] >= b[0]+c[1] && a[0] >= b[1] && a[0] >= c[0]){
            out.print("YES");
            return;
        }
        else if (a[0] >= b[0]+c[1] && a[1] >= b[1] && a[1] >= c[0]){
            out.print("YES");
            return;
        }
        else if (a[0] >= b[1]+c[0] && a[1] >= b[0] && a[1] >= c[1]){
            out.print("YES");
            return;
        }
        else{
            out.print("NO");
            return;
        }

    }