競技プログラミングのためのF#入門
公式解説通りに素直に実装します.
1 2 3 |
|
l1
距離を測る関数l1
を定義します.
1 |
|
はじめ l1 x1 y1 x2 y2
で定義したものの, 間違って右辺の出てくる順番でl1 x1 x2 y1 y2
と書いてバグったため, (私にとって)間違えにくいタプルで書き直しました.
Array.find
で探せます.
1 |
|
F#のnot equal
はa <> b
です. ちなみにHaskellではa /= b
です.
問題の条件によって必ず条件をみたす点が存在するためArray.tryFind
などを使う必要はありません.
まず中心のデータを一気に生成します.
1 2 |
|
あとは再びArray.find
で条件をみたす要素を探します. これも必ず, それも一意的に存在するとわかっているためArray.tryFind
などで保険をかける必要はありません.
全ての入力が条件をみたすか確認する必要があるため, Array.find
の中でAa
に対するチェックのループが走ります.
1 2 3 4 |
|
最後に返り値の数値のタプルからsprintf
で文字列を生成しましょう.
1 2 3 4 5 6 7 8 |
|