https://atcoder.jp/contests/abc433/tasks/abc433_e小さい値から行列の要素を埋めていけばよいです。行と列の片方にその値があればどちらかを適当に埋めていけばいいのですが、両方にある場合は交わった要素をその値にしなければなりません。 また、それ以外のその値以下で使われていない最大の値にすればよいです。それにはBTreeSetを使って要素を[first, last)の区間にすればよいです。結果的に区間が隣り合えば結合します。 // Max Matrix 2 #![allow(non_snake_case)] //////////////////// li…