結果

問題 No.1020 Reverse
ユーザー poapoapoapoa
提出日時 2020-07-30 12:45:54
言語 Haskell
(9.10.1)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 924 bytes
コンパイル時間 9,296 ms
コンパイル使用メモリ 205,696 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-03 22:14:37
合計ジャッジ時間 8,706 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 15
権限があれば一括ダウンロードができます
コンパイルメッセージ
Loaded package environment from /home/judge/.ghc/x86_64-linux-9.8.2/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.getLine
if even (n - k)
then solve' n k s
else solve'' n k s
solve', solve'' :: Int -> Int -> BSC8.ByteString -> IO ()
solve' n k s
= BSC8.putStrLn $ BSC8.append (BSC8.drop (k - 1) s) (BSC8.reverse $ BSC8.take (k - 1) s)
solve'' n k s
= BSC8.putStrLn $ BSC8.append (BSC8.drop (k - 1) s) (BSC8.take (k - 1) s)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0