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; } }
Leave A Comment