Submission #10519601


Source Code Expand

import           Control.Monad
import qualified Data.ByteString.Char8       as BS
import           Data.Maybe
import qualified Data.Vector.Unboxed         as V
import qualified Data.Vector.Unboxed.Mutable as VM
import           Debug.Trace

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine

main = do
  [n, x] <- getIntList
  ts <- getIntList

  ct <- VM.new 1
  VM.set ct (0::Int)

  as <- VM.new (n+1)
  VM.write as 0 (0::Int)
  forM_ (zip [1..] ts) $ \(i, a) -> VM.write as i a

  forM_ [1..n] $ \i -> do
    ai_1 <- VM.read as (i-1)
    ai <- VM.read as i
    m <- VM.read ct 0
    let d = max (ai_1 + ai - x) 0
    VM.write as i (ai - d)
    VM.write ct 0 (m + d)

  ans <- VM.read ct 0
  print ans

Submission Info

Submission Time
Task C - Boxes and Candies
User unnohideyuki
Language Haskell (GHC 7.10.3)
Score 300
Code Size 833 Byte
Status AC
Exec Time 14 ms
Memory 3964 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 4
AC × 20
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 380 KiB
0_01.txt AC 1 ms 380 KiB
0_02.txt AC 1 ms 380 KiB
0_03.txt AC 1 ms 380 KiB
1_00.txt AC 1 ms 380 KiB
1_01.txt AC 1 ms 380 KiB
1_02.txt AC 1 ms 380 KiB
1_03.txt AC 1 ms 380 KiB
1_04.txt AC 7 ms 2172 KiB
1_05.txt AC 7 ms 2172 KiB
1_06.txt AC 14 ms 3964 KiB
1_07.txt AC 14 ms 3964 KiB
1_08.txt AC 13 ms 3708 KiB
1_09.txt AC 13 ms 3708 KiB
1_10.txt AC 13 ms 3708 KiB
1_11.txt AC 14 ms 3708 KiB
1_12.txt AC 13 ms 3580 KiB
1_13.txt AC 13 ms 3708 KiB
1_14.txt AC 13 ms 3708 KiB
1_15.txt AC 13 ms 3708 KiB