ARC004 B問題 : 2点間距離の最大と最小 ( Maximum and Minimum )
問題. 2点間距離の最大と最小 ( Maximum and Minimum )
平面上に 個の点があり,0 から まで番号付されている.任意の に対して, 番目と 番目の点の間の距離 が与えられる.このとき,0 番目と 番目の点の間の距離としてとりうる最大値と最小値を答えよ.
制約: ,
解法
0 番目の点は原点に固定されているとする.このとき,0 番目の点以外のすべての点の座標は固定されていないので自由に移動させることができるが,2点間の距離は定まっているので下の図(参考元:問題文の図)のようなロボットアームのようなものとなる.
0 番目と 番目の点の間のとりうる最大距離は,ロボットアームが一直線となっているときで である.
次に,0 番目と 番目の点の間のとりうる最小距離について考える.まず,任意の に対して と を交換しても最小距離は変わらないので, は降順にソートされているとする.
1 番目の点が移動することができる領域は原点を中心とした半径 の円周上である(下図の赤色).次に 2番目の点が移動することができる領域を考えると,下の図のようなドーナッツの領域となる(下図の青色の領域).
同様に,3番目の点は青色の領域を中心とした半径 の円全体となるので,青色の領域を原点と外側に向かって だけ拡大したドーナッツの領域となる.したがって, ならば 番目の点が移動できる領域は原点を中心とした半径 の円板となる.このときは, 番目の点は原点に移動することができるので最小距離は 0 である.
それ以外のときは,領域は円板とならずにドーナッツの形状をして原点を含まないので最小距離は である.
計算時間:
ドーナッツが食べたくなってきた.