結果

問題 No.5 数字のブロック
ユーザー CnXYmtNAtx6wp6tx
提出日時 2015-06-27 22:41:27
言語 Haskell
(9.10.1)
結果
WA  
実行時間 -
コード長 733 bytes
コンパイル時間 9,610 ms
コンパイル使用メモリ 174,336 KB
実行使用メモリ 10,240 KB
最終ジャッジ日時 2024-07-07 20:10:16
合計ジャッジ時間 3,174 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 33 WA * 1
権限があれば一括ダウンロードができます
コンパイルメッセージ
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 Control.Applicative

qsort :: (Ord a) => [a] -> [a]
qsort [] = []
qsort (x:xs) = qsort leeq ++ [x] ++ qsort gt where
    (leeq, gt) = go x xs [] []
    go _ [] a b = (a, b)
    go p (y:ys) a b = if y <= p
                          then go p ys (y:a) b
                          else go p ys a (y:b)

solver :: Int -> [Int] -> Int
solver len sor = go len sor 0 0 where
    go _ [] _ n = n
    go l (x:xs) s n
        | l < s   = n - 1
        | otherwise = go l xs (s + x) (n + 1)

main :: IO ()
main = do
        lenstr <- getLine
        let len = (read lenstr :: Int)
        n <- getLine
        widths <- words <$> getLine
        let sorted = qsort $ (map read widths :: [Int])
        putStrLn $ show $ solver len sorted
0