結果

問題 No.370 道路の掃除
コンテスト
ユーザー aimy
提出日時 2017-05-03 09:43:31
言語 Haskell
(9.14.1)
コンパイル:
ghc -rtsopts -with-rtsopts=-K1G -o a.out -O2 _filename_
実行:
./a.out
結果
AC  
実行時間 8 ms / 2,000 ms
コード長 453 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 6,076 ms
コンパイル使用メモリ 193,920 KB
実行使用メモリ 10,240 KB
最終ジャッジ日時 2026-04-04 11:03:15
合計ジャッジ時間 8,334 ms
ジャッジサーバーID
(参考情報)
judge5_1 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.14.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #
raw source code

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