Eまで五完。Fも解けるべきだったが、最近ABCの成績が低迷したことを考えれば、まあ満足すべきか。
F - Weed
 コンテスト後、
・青木君は配列の前と後ろのみ刈れば良いと勘違いしていた、
・DPを使う
 というツイートを見たら分かってACできました。
 前者は全く同じ勘違いをしていた。この勘違いがなければDPは思いつけたんじゃないか、とは思うけど、一度嵌ると抜けにくい勘違いな気もする。
 まず、Aはソートしておく。
 高橋君だけが草を刈ることを考えると、$A_i$を切るとき一つ前に切っているのは、$A_i*2$以下のもの。このようなもののうち最大のものを持つ配列を用意する。
 まあ、ダブリングするときの、一番最初に用意する配列ですね。
 これを用いて、DPする。
 $DP[i][j]$で、高橋君が$i$回操作したとき、青木君は最低でも何本草を刈らねばいけないか、とする。
 $i$が変わらないところは、1ずつ増えていく感じで。$i$が増える方向の遷移は、事前に用意した配列を使えばできます。