ABC-212
A
解法
B
解法
C
https://atcoder.jp/contests/abc212/tasks/abc212_c
#二分探索
Python
n,m = Integer().content a = IntegerList().content b = IntegerList(sorted(IntegerList().content)) ans = INF for i in range(n): r = b.lowerBound(a[i]) l = r - 1 ans = min(abs(a[i]-b.content[l]) if 0<=l else INF, abs(a[i]-b.content[r]) if r<m else INF, ans) if ans==0: break print(ans)
解法
upperBoundを使用することでターゲット以上のインデックスを得ることができ、それ することで必ずターゲット未満のインデックスを得ることができる。 ターゲット以上の値とターゲットの差, ターゲット未満の値とターゲットの差, 現在の最小値のつの最小値を求めて続け、になったら枝を刈ることで題意を満たすことができる。
D
解法
E