公式

C - Strong Surname 解説 by ynymxiaolongbao


求める人の集合 \(S\) は、以下のような特徴を持ちます。

  • \(S\) に属する人の \(x\) の最小値は、 \(S\) に属さない人の \(x\) の最大値より大きい
  • \(S\) に属する人の \(y\) の最小値は、 \(S\) に属さない人の \(y\) の最大値より大きい
  • \(S\) に属する人の \(z\) の最小値は、 \(S\) に属さない人の \(z\) の最大値より大きい
  • これらの条件を満たす空でない集合の中で最小である。

\((x,y,z)\) を降順にソートし、前からいくつか取ったときに、これらの条件を満たすかどうか確認すれば良いです。

計算量は \(O(N \log N)\) です。

投稿日時:
最終更新: