https://atcoder.jp/contests/abc330/tasks/abc330_f辺の間隔(=長さ)を一定とすると、辺をずらすとどこかで移動量の最小値がありますが、片方の辺を端からずらしていくと移動量が下に凸になるので、両方の辺を合わせても下に凸になります。なので、領域を3分割して再帰的に最小値を求めていきます。 // Minimize Bounding Square #![allow(non_snake_case)] use std::cmp::{min, max}; use std::collections::BTreeMap; //////////////////// l…