結果

問題 No.1416 ショッピングモール
コンテスト
ユーザー kou_kkk
提出日時 2026-09-01 17:15:45
言語 Haskell
(9.14.1 + ACL)
コンパイル:
ghc -rtsopts -with-rtsopts=-K1G -o a.out -O2 _filename_
実行:
./a.out
結果
AC  
実行時間 83 ms / 1,000 ms
+ 948µs
コード長 636 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,009 ms
コンパイル使用メモリ 193,536 KB
実行使用メモリ 15,616 KB
最終ジャッジ日時 2026-09-01 17:15:49
合計ジャッジ時間 3,079 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
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

module Main where

import Data.List (sortBy)

type Input  = [Int]
type Output = Int

parse :: String -> Input
parse =
    map read
    . words
    . (!! 1)
    . lines

solve :: Input -> Output
solve =
    loop 0 0
    . sortBy (flip compare)
    where
    loop _ acc [] = acc
    loop i acc xs
        | length xs < 2 ^ i = acc + i * sum xs
        | otherwise =
              let
                  (a, b) = splitAt (2 ^ i) xs
              in
                  loop (succ i) (acc + i * sum a) b

render :: Output -> String
render =
    show

main :: IO ()
main =
    interact
        ( render
        . solve
        . parse
        )
0