結果

問題 No.370 道路の掃除
ユーザー aimy
提出日時 2017-05-03 09:43:31
言語 Haskell
(9.10.1)
結果
AC  
実行時間 9 ms / 2,000 ms
コード長 453 bytes
コンパイル時間 6,959 ms
コンパイル使用メモリ 173,384 KB
実行使用メモリ 8,064 KB
最終ジャッジ日時 2024-09-14 07:00:59
合計ジャッジ時間 5,368 ms
ジャッジサーバーID
(参考情報)
judge5 / judge6
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import Data.List
import Data.Ord

pmap f (x,y) = (f x, f y)

main = do
 [n,_] <- map read . words <$> getLine
 ds <- map read . words <$> getContents
 print (clean n ds)

clean :: Int -> [Int] -> Int
clean n ds = minimum $ do
 let (neg,pos) = pmap (sortBy (comparing abs)) (partition (<0) ds)
 i <- [(n - length pos) .. (length neg)]
 let nx = abs (last (0:(take i neg)))
 let px = abs (last (0:(take (n-i) pos)))
 return $ 2 * (min nx px) + (max nx px)
0