Submission #223478


Source Code Expand

{-# LANGUAGE BangPatterns        #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies        #-}

import           Control.Applicative
import           Control.Arrow
import           Control.Monad
import           Data.Array.IO
import           Data.Array.Unboxed
import           Data.Bool
import qualified Data.ByteString.Char8       as C
import           Data.Char
import           Data.Function
import           Data.Functor
import           Data.Int
import qualified Data.IntMap                 as IM
import           Data.IORef
import           Data.List
import qualified Data.Map                    as M
import           Data.Maybe
import           Data.Monoid
import           Data.Ord
import qualified Data.Sequence               as Seq
import qualified Data.Set                    as S
import           Data.Tuple
import           Data.Word
import           Debug.Trace
import           System.IO
import           Text.Printf                 (printf)

import qualified Data.Vector                 as V
import qualified Data.Vector.Generic         as G
import qualified Data.Vector.Generic.Mutable as GM
import qualified Data.Vector.Unboxed         as U
import qualified Data.Vector.Unboxed.Mutable as UM

-- I/O

readInts :: C.ByteString -> [Int]
readInts = map fst . mapMaybe C.readInt . C.words

getInts :: IO [Int]
getInts = readInts <$> C.getLine

readNums :: Num a => C.ByteString -> [a]
readNums = map (fromIntegral . fst) . mapMaybe C.readInteger . C.words

getNums :: Num a => IO [a]
getNums = readNums <$> C.getLine

cast :: (Integral a, Num b) => a -> b
cast = fromIntegral
{-# INLINE cast #-}

rep :: Int -> Int -> (Int -> IO ()) -> IO ()
rep i j m = go i where
  go !i
    | i < j = m i >> go (i+1)
    | otherwise = return ()
{-# INLINE rep #-}

rrep :: Int -> Int -> (Int -> IO ()) -> IO ()
rrep i j m = go i where
  go !i
    | i > j = m (i-1) >> go (i-1)
    | otherwise = return ()
{-# INLINE rrep #-}

-----

main :: IO ()
main = do
  [n, a, b] <- getInts
  let go !i
        | i <= a = True
        | otherwise = not $ ho $ i - a
      ho !i
        | i <= b = True
        | otherwise = not $ go $ i - b

  putStrLn $ if go n then "Ant" else "Bug"

Submission Info

Submission Time
Task A - 小石を取るゲーム
User tanakh
Language Haskell (GHC 7.4.1)
Score 100
Code Size 2273 Byte
Status AC
Exec Time 475 ms
Memory 1432 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 2
AC × 13
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
All subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt
Case Name Status Exec Time Memory
sample_01.txt AC 475 ms 1184 KB
sample_02.txt AC 27 ms 1312 KB
subtask1_01.txt AC 26 ms 1308 KB
subtask1_02.txt AC 25 ms 1308 KB
subtask1_03.txt AC 26 ms 1308 KB
subtask1_04.txt AC 26 ms 1180 KB
subtask1_05.txt AC 26 ms 1432 KB
subtask1_06.txt AC 26 ms 1180 KB
subtask1_07.txt AC 27 ms 1308 KB
subtask1_08.txt AC 27 ms 1312 KB
subtask1_09.txt AC 25 ms 1308 KB
subtask1_10.txt AC 26 ms 1312 KB
subtask1_11.txt AC 28 ms 1428 KB
subtask1_12.txt AC 26 ms 1308 KB
subtask1_13.txt AC 26 ms 1304 KB