結果
| 問題 |
No.1020 Reverse
|
| コンテスト | |
| ユーザー |
poapoa
|
| 提出日時 | 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
ソースコード
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)
poapoa