Submission #12988326


Source Code Expand

{-# LANGUAGE BangPatterns #-}
import           Control.Exception           (assert)
import           Control.Monad
import           Control.Monad.Primitive
import qualified Control.Monad.ST            as ST
import qualified Data.Array.IO               as IO
import qualified Data.Array.ST               as ST
import qualified Data.Array.Unboxed          as A
import           Data.Bits
import qualified Data.ByteString.Char8       as BS
import           Data.Char
import           Data.Foldable
import           Data.List
import qualified Data.Map.Strict             as Map
import           Data.Maybe
import qualified Data.Sequence               as Seq
import qualified Data.Set                    as Set
import qualified Data.Vector                 as VB
import qualified Data.Vector.Mutable         as VBM
import qualified Data.Vector.Unboxed         as V
import qualified Data.Vector.Unboxed.Mutable as VM
import           Debug.Trace

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine
getIntVec n = V.unfoldrN n (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine

readInteger = fst . fromJust . BS.readInteger
readIntegerList = map readInteger . BS.words
getInteger = readInteger <$> BS.getLine
getIntegerList = readIntegerList <$> BS.getLine

inf :: Int
inf = 10^18

main = do
  n <- getInt
  ss <- VB.replicateM n BS.getLine

  let getPos y x = let y' = y `mod` n
                       x' = x `mod` n
                   in (ss VB.! y') `BS.index` x'

      isGood offy offx = loop 0
        where loop y | y == (n-1) = True
                     | otherwise  = loop' y (y+1) && loop (y+1)

              loop' j i
                | i == n = True
                | otherwise = let s  = getPos (j+offy) (i+offx)
                                  s' = getPos (i+offy) (j+offx)
                              in s == s' && loop' j (i+1)

      solve i res | i == n     = res * n
                  | isGood 0 i = solve (i+1) (res+1)
                  | otherwise  = solve (i+1) res

  print $ solve 0 0

Submission Info

Submission Time
Task B - Find Symmetries
User unnohideyuki
Language Haskell (GHC 7.10.3)
Score 500
Code Size 2159 Byte
Status AC
Exec Time 1141 ms
Memory 636 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 36
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 380 KiB
sample_02.txt AC 2 ms 380 KiB
sample_03.txt AC 2 ms 380 KiB
subtask_1_01.txt AC 2 ms 380 KiB
subtask_1_02.txt AC 2 ms 380 KiB
subtask_1_03.txt AC 2 ms 636 KiB
subtask_1_04.txt AC 2 ms 636 KiB
subtask_1_05.txt AC 8 ms 636 KiB
subtask_1_06.txt AC 283 ms 636 KiB
subtask_1_07.txt AC 4 ms 636 KiB
subtask_1_08.txt AC 990 ms 636 KiB
subtask_1_09.txt AC 1141 ms 636 KiB
subtask_1_10.txt AC 571 ms 636 KiB
subtask_1_11.txt AC 557 ms 636 KiB
subtask_1_12.txt AC 287 ms 636 KiB
subtask_1_13.txt AC 249 ms 636 KiB
subtask_1_14.txt AC 727 ms 636 KiB
subtask_1_15.txt AC 5 ms 636 KiB
subtask_1_16.txt AC 237 ms 636 KiB
subtask_1_17.txt AC 64 ms 636 KiB
subtask_1_18.txt AC 21 ms 636 KiB
subtask_1_19.txt AC 725 ms 636 KiB
subtask_1_20.txt AC 5 ms 636 KiB
subtask_1_21.txt AC 230 ms 636 KiB
subtask_1_22.txt AC 192 ms 636 KiB
subtask_1_23.txt AC 572 ms 636 KiB
subtask_1_24.txt AC 1140 ms 636 KiB
subtask_1_25.txt AC 192 ms 636 KiB
subtask_1_26.txt AC 286 ms 636 KiB
subtask_1_27.txt AC 1139 ms 636 KiB
subtask_1_28.txt AC 1139 ms 636 KiB
subtask_1_29.txt AC 572 ms 636 KiB
subtask_1_30.txt AC 571 ms 636 KiB