Submission #1871433
Source Code Expand
import Data.List import qualified Data.ByteString.Char8 as BC (words, getLine, unpack) data Animal = S | W deriving (Show, Eq) main = do n <- (read :: String -> Int) <$> getLine input <- BC.unpack <$> BC.getLine let pattern = [[a,b] | a <- [S, W], b <- [S, W]] result = map (solve input) pattern resultTF = map judge result ansIdx = elemIndices True resultTF if length ansIdx > 0 then putStrLn . toString $ result !! (head ansIdx) else print $ -1 rev :: Animal -> Animal rev S = W rev W = S solve :: String -> [Animal] -> [Animal] solve (s:tt) (a:b:bs) | s == 'o' && b == S = solve' tt (a:b:bs) ++ [a] | s == 'o' && b == W = solve' tt (a:b:bs) ++ [rev a] | s == 'x' && b == S = solve' tt (a:b:bs) ++ [rev a] | otherwise = solve' tt (a:b:bs) ++ [a] solve' :: String -> [Animal] -> [Animal] solve' [] s = s solve' (s:tt) (a:b:bs) | s == 'o' && a == S = solve' tt (b:a:b:bs) | s == 'o' && a == W = solve' tt ((rev b):a:b:bs) | s == 'x' && a == S = solve' tt ((rev b):a:b:bs) | otherwise = solve' tt (b:a:b:bs) judge :: [Animal] -> Bool judge [] = False judge (_:[]) = False judge (a:b:bs) = a == (last . init $ bs) && b == last bs toString :: [Animal] -> String toString = concat . map show . reverse . init . tail
Submission Info
Submission Time | |
---|---|
Task | D - Menagerie |
User | amanuko |
Language | Haskell (GHC 7.10.3) |
Score | 500 |
Code Size | 1362 Byte |
Status | AC |
Exec Time | 66 ms |
Memory | 23932 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt |
All | 00_example_01.txt, 00_example_02.txt, 00_example_03.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_example_01.txt | AC | 1 ms | 380 KB |
00_example_02.txt | AC | 1 ms | 380 KB |
00_example_03.txt | AC | 1 ms | 380 KB |
01.txt | AC | 45 ms | 18812 KB |
02.txt | AC | 30 ms | 11644 KB |
03.txt | AC | 3 ms | 1404 KB |
04.txt | AC | 1 ms | 508 KB |
05.txt | AC | 61 ms | 22908 KB |
06.txt | AC | 59 ms | 20860 KB |
07.txt | AC | 10 ms | 3708 KB |
08.txt | AC | 13 ms | 5500 KB |
09.txt | AC | 4 ms | 1660 KB |
10.txt | AC | 12 ms | 4988 KB |
11.txt | AC | 66 ms | 23932 KB |
12.txt | AC | 66 ms | 23932 KB |
13.txt | AC | 66 ms | 23932 KB |