提出 #576251


ソースコード 拡げる

import Control.Applicative
import Data.Monoid
import Data.List
import Data.Foldable (fold)
import Debug.Trace
 
data Max a b = Max !a b | NoMax
 
instance (Ord a, Monoid b) => Monoid (Max a b) where
  mempty = NoMax
  mappend (Max a xs) (Max b ys) = case compare a b of
    LT -> Max b ys
    EQ -> Max a (mappend xs ys)
    GT -> Max a xs
  mappend NoMax a = a
  mappend a NoMax = a
 
solve :: Int -> [Int] -> [Int]
solve siz xs = do
  m <- [0..siz-1]
  let Max _ (Endo f) = fold $ do 
        n <- [0..siz-1]
        ys <- case compare m n of
          LT -> return $ take (n - m + 1) (drop m xs)
          EQ -> []
          GT -> return $ take (m - n + 1) (drop n xs)
        let (us, vs) = halves ys
        let z = sum vs
        return $ Max (z, -n) (Endo (sum us:))
  f []
 
halves :: [a] -> ([a], [a])
halves (x:y:ys) = (x : ls, y : rs) where
  (ls, rs) = halves ys
halves xs = (xs, [])
 
main = do
  siz <- readLn
  xs <- map read <$> words <$> getLine
  print $ maximum $ solve siz xs

提出情報

提出日時
問題 C - 数列ゲーム
ユーザ fumieval
言語 Haskell (Haskell Platform 2014.2.0.0)
得点 100
コード長 1034 Byte
結果 AC
実行時間 34 ms
メモリ 1944 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 100 / 100
結果
AC × 3
AC × 20
セット名 テストケース
Sample sample-01.txt, sample-02.txt, sample-03.txt
All test-01.txt, test-02.txt, test-03.txt, test-04.txt, test-05.txt, test-06.txt, test-07.txt, test-08.txt, test-09.txt, test-10.txt, test-11.txt, test-12.txt, test-13.txt, test-14.txt, test-15.txt, test-16.txt, test-17.txt, test-18.txt, test-19.txt, test-20.txt
ケース名 結果 実行時間 メモリ
sample-01.txt AC 33 ms 1428 KiB
sample-02.txt AC 29 ms 1304 KiB
sample-03.txt AC 28 ms 1308 KiB
test-01.txt AC 28 ms 1380 KiB
test-02.txt AC 29 ms 1556 KiB
test-03.txt AC 30 ms 1816 KiB
test-04.txt AC 30 ms 1812 KiB
test-05.txt AC 31 ms 1816 KiB
test-06.txt AC 30 ms 1752 KiB
test-07.txt AC 32 ms 1816 KiB
test-08.txt AC 33 ms 1812 KiB
test-09.txt AC 31 ms 1816 KiB
test-10.txt AC 32 ms 1816 KiB
test-11.txt AC 31 ms 1816 KiB
test-12.txt AC 30 ms 1936 KiB
test-13.txt AC 31 ms 1816 KiB
test-14.txt AC 32 ms 1820 KiB
test-15.txt AC 32 ms 1816 KiB
test-16.txt AC 32 ms 1812 KiB
test-17.txt AC 31 ms 1944 KiB
test-18.txt AC 31 ms 1816 KiB
test-19.txt AC 34 ms 1772 KiB
test-20.txt AC 32 ms 1828 KiB