結果

問題 No.105 arcの六角ボルト
ユーザー ducktailducktail
提出日時 2018-09-06 22:09:27
言語 Haskell
(9.8.2)
結果
AC  
実行時間 393 ms / 5,000 ms
コード長 548 bytes
コンパイル時間 8,436 ms
コンパイル使用メモリ 160,304 KB
実行使用メモリ 77,560 KB
最終ジャッジ日時 2023-08-15 21:35:44
合計ジャッジ時間 9,929 ms
ジャッジサーバーID
(参考情報)
judge15 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 393 ms
77,560 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.6.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import Control.Applicative
import Control.Monad

main :: IO ()
main = do
  n <- readLn
  solve <$> replicateM n (getLine >> replicateM 6 f) >>= mapM_ print
  where
    f = map read <$> words <$> getLine

solve :: [[[Double]]] -> [Double]
solve = map f
  where
    f = minimum . filter (>= 0.0) . map ang . filter (\[x, y] -> x < xmx && x > xmn && y > 0)
    xmn = cos (pi * 171 / 180.0)
    xmx = cos (pi * 119 / 180.0)

ang :: [Double] -> Double
ang [x, _]
  | abs a < 0.0000001 = 0.0
  | otherwise = a
  where
    a = 180.0 * acos x / pi - 120.0
0