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 |
|
|
| 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 |