結果

問題 No.1020 Reverse
ユーザー poapoapoapoa
提出日時 2020-07-30 12:36:05
言語 Haskell
(9.8.2)
結果
WA  
実行時間 -
コード長 860 bytes
コンパイル時間 14,037 ms
コンパイル使用メモリ 194,644 KB
実行使用メモリ 20,500 KB
最終ジャッジ日時 2023-09-16 23:18:38
合計ジャッジ時間 16,926 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.6.1/environments/default
[1 of 2] Compiling Main             ( Main.hs, Main.o )
[2 of 2] Linking a.out

ソースコード

diff #

import qualified Control.Arrow         as Arrow
import qualified Control.Monad         as Monad
import qualified Data.Char             as Char
import qualified Data.List             as List
import qualified Data.ByteString.Char8 as BSC8
import qualified Data.Vector.Unboxed   as VU
import qualified Data.Ord              as Ord

getI :: BSC8.ByteString -> Maybe (Int, BSC8.ByteString)
getI = fmap (Arrow.second BSC8.tail) . BSC8.readInt
getAB :: IO (Int, Int)
getAB = (\vec -> (vec VU.! 0, vec VU.! 1)) . VU.unfoldrN 2 getI <$> BSC8.getLine

main :: IO ()
main = do
  (n, k) <- getAB
  s      <- BSC8.unpack <$> BSC8.getLine
  if even (n - k)
    then solve' n k s
    else solve'' n k s

solve', solve'' :: Int -> Int -> String -> IO ()
solve' n k s
  = putStrLn $ drop k s ++ (reverse $ take (k - 1) s)
solve'' n k s
  = putStrLn $ drop k s ++ take (k - 1) s
0