Submission #5209599


Source Code Expand

Copy
{-# LANGUAGE BangPatterns #-}
import Control.Monad
import Data.Char
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as VM
import qualified Data.ByteString.Char8 as BS
main = do
[n,!k] <- map (read . BS.unpack) . BS.words <$> BS.getLine
-- 2 <= n <= 10^5, 1 <= k <= 100
h <- V.unfoldrN n (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine
-- 1 <= hi <= 10^4
let dp = V.constructN n $ \dp ->
if V.null dp
then 0
else let !i = V.length dp
!h_i = h V.! i
in V.minimum $ V.map (\(dp_j, h_j) -> dp_j + abs (h_i - h_j)) $ V.drop (i-k) $ V.zip dp h
print (V.last dp :: Int)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{-# LANGUAGE BangPatterns #-}
import Control.Monad
import Data.Char
import qualified Data.Vector.Unboxed as V
import qualified Data.Vector.Unboxed.Mutable as VM
import qualified Data.ByteString.Char8 as BS

main = do
  [n,!k] <- map (read . BS.unpack) . BS.words <$> BS.getLine
  -- 2 <= n <= 10^5, 1 <= k <= 100
  h <- V.unfoldrN n (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine
  -- 1 <= hi <= 10^4
  let dp = V.constructN n $ \dp ->
        if V.null dp
        then 0
        else let !i = V.length dp
                 !h_i = h V.! i
             in V.minimum $ V.map (\(dp_j, h_j) -> dp_j + abs (h_i - h_j)) $ V.drop (i-k) $ V.zip dp h
  print (V.last dp :: Int)

Submission Info

Submission Time
Task B - Frog 2
User mod_poppo
Language Haskell (GHC 7.10.3)
Score 100
Code Size 691 Byte
Status AC
Exec Time 48 ms
Memory 3708 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 16
Set Name Test Cases
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11
Case Name Status Exec Time Memory
0_00 AC 1 ms 508 KB
0_01 AC 1 ms 508 KB
0_02 AC 1 ms 508 KB
0_03 AC 1 ms 508 KB
1_00 AC 1 ms 508 KB
1_01 AC 1 ms 508 KB
1_02 AC 9 ms 3324 KB
1_03 AC 26 ms 3708 KB
1_04 AC 10 ms 3580 KB
1_05 AC 11 ms 3452 KB
1_06 AC 12 ms 3580 KB
1_07 AC 15 ms 3580 KB
1_08 AC 18 ms 3452 KB
1_09 AC 25 ms 3580 KB
1_10 AC 36 ms 3452 KB
1_11 AC 48 ms 3452 KB


2025-04-09 (Wed)
02:39:24 +00:00