Submission #38834722
Source Code Expand
Copy
importControl.MonadimportqualifiedData.ByteString.CharasBSimportData.CharimportData.ListimportData.ArrayimportqualifiedData.SetasSmain = do[t] <- bsGetLnIntsreplicateM_ t $ do[n,m] <- bsGetLnIntscs <- bsGetLnIntsuvs <- replicateM m bsGetLnIntslet ans = abc289e n m cs uvsprint ansbsGetLnInts::IOIntbsGetLnInts = unfoldr (BS.readInt . BS.dropWhile isSpace) <$> BS.getLineabc289e::Int->Int->Int->Int->Int
import Control.Monad import qualified Data.ByteString.Char8 as BS import Data.Char import Data.List import Data.Array import qualified Data.Set as S main = do [t] <- bsGetLnInts replicateM_ t $ do [n,m] <- bsGetLnInts cs <- bsGetLnInts uvs <- replicateM m bsGetLnInts let ans = abc289e n m cs uvs print ans bsGetLnInts :: IO [Int] bsGetLnInts = unfoldr (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine abc289e :: Int -> Int -> [Int] -> [[Int]] -> Int abc289e n m cs uvs | cA ! 1 == cA ! n = -1 | otherwise = loop 0 S.empty (S.singleton (1,n)) where cA = listArray (1,n) cs g1 = accumArray (flip (:)) [] (1,n) -- 同色の頂点への辺のみのグラフ [p | (u:v:_) <- uvs, cA ! u == cA ! v, p <- [(u,v), (v,u)]] g2 = accumArray (flip (:)) [] (1,n) -- 色の異なる頂点間の辺のみのグラフ [p | (u:v:_) <- uvs, cA ! u /= cA ! v, p <- [(u,v), (v,u)]] loop cnt visited news | S.member (n,1) news = cnt | S.null news = -1 | otherwise = loop (succ cnt) visited1 news1 where visited1 = S.union visited news news1 = S.fromList $ [ (c,d) | (a,b) <- S.elems news , c <- g1 ! a, d <- g1 ! b , S.notMember (c,d) visited1 ] ++ [ (c,d) | (a,b) <- S.elems news , c <- g2 ! a, d <- g2 ! b , S.notMember (c,d) visited1 ]
Submission Info
Submission Time | |
---|---|
Task | E - Swap Places |
User | joetheshootingst |
Language | Haskell (GHC 8.8.3) |
Score | 0 |
Code Size | 1494 Byte |
Status | TLE |
Exec Time | 2210 ms |
Memory | 129152 KB |
Compile Error
Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.8.3/environments/default
Judge Result
Set Name | Sample | All | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 500 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_00.txt |
All | 00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 01_small_10.txt, 01_small_11.txt, 01_small_12.txt, 01_small_13.txt, 01_small_14.txt, 01_small_15.txt, 01_small_16.txt, 01_small_17.txt, 01_small_18.txt, 01_small_19.txt, 01_small_20.txt, 01_small_21.txt, 01_small_22.txt, 01_small_23.txt, 01_small_24.txt, 01_small_25.txt, 01_small_26.txt, 01_small_27.txt, 01_small_28.txt, 01_small_29.txt, 01_small_30.txt, 01_small_31.txt, 02_tree_00.txt, 02_tree_01.txt, 02_tree_02.txt, 02_tree_03.txt, 02_tree_04.txt, 02_tree_05.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 04_dense_00.txt, 04_dense_01.txt, 04_dense_02.txt, 04_dense_03.txt, 05_sparse_00.txt, 05_sparse_01.txt, 05_sparse_02.txt, 05_sparse_03.txt, 06_large_00.txt, 06_large_01.txt, 06_large_02.txt, 06_large_03.txt, 06_large_04.txt, 06_large_05.txt, 06_large_06.txt, 06_large_07.txt, 06_large_08.txt, 06_large_09.txt, 07_bridge_connected_00.txt, 07_bridge_connected_01.txt, 07_bridge_connected_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00.txt | AC | 5 ms | 3644 KB |
01_small_00.txt | AC | 5 ms | 4800 KB |
01_small_01.txt | AC | 2 ms | 3792 KB |
01_small_02.txt | AC | 5 ms | 4860 KB |
01_small_03.txt | AC | 2 ms | 4872 KB |
01_small_04.txt | AC | 4 ms | 4752 KB |
01_small_05.txt | AC | 4 ms | 4792 KB |
01_small_06.txt | AC | 5 ms | 4780 KB |
01_small_07.txt | AC | 5 ms | 4660 KB |
01_small_08.txt | AC | 6 ms | 4680 KB |
01_small_09.txt | AC | 4 ms | 4744 KB |
01_small_10.txt | AC | 5 ms | 4604 KB |
01_small_11.txt | AC | 9 ms | 4768 KB |
01_small_12.txt | AC | 6 ms | 4760 KB |
01_small_13.txt | AC | 7 ms | 4620 KB |
01_small_14.txt | AC | 6 ms | 4788 KB |
01_small_15.txt | AC | 9 ms | 4884 KB |
01_small_16.txt | AC | 6 ms | 4688 KB |
01_small_17.txt | AC | 8 ms | 4776 KB |
01_small_18.txt | AC | 8 ms | 4696 KB |
01_small_19.txt | AC | 7 ms | 4768 KB |
01_small_20.txt | AC | 9 ms | 4684 KB |
01_small_21.txt | AC | 8 ms | 4800 KB |
01_small_22.txt | AC | 17 ms | 4952 KB |
01_small_23.txt | AC | 25 ms | 4884 KB |
01_small_24.txt | AC | 59 ms | 5368 KB |
01_small_25.txt | AC | 36 ms | 5264 KB |
01_small_26.txt | AC | 10 ms | 4764 KB |
01_small_27.txt | AC | 26 ms | 4996 KB |
01_small_28.txt | AC | 15 ms | 4944 KB |
01_small_29.txt | AC | 22 ms | 5036 KB |
01_small_30.txt | AC | 39 ms | 5256 KB |
01_small_31.txt | AC | 28 ms | 5064 KB |
02_tree_00.txt | AC | 21 ms | 5812 KB |
02_tree_01.txt | AC | 10 ms | 5092 KB |
02_tree_02.txt | AC | 5 ms | 5104 KB |
02_tree_03.txt | AC | 78 ms | 10664 KB |
02_tree_04.txt | AC | 7 ms | 5124 KB |
02_tree_05.txt | AC | 192 ms | 18224 KB |
03_path_00.txt | TLE | 2209 ms | 111948 KB |
03_path_01.txt | AC | 8 ms | 5148 KB |
03_path_02.txt | AC | 5 ms | 5148 KB |
03_path_03.txt | AC | 11 ms | 5296 KB |
04_dense_00.txt | AC | 2 ms | 4436 KB |
04_dense_01.txt | AC | 9 ms | 5264 KB |
04_dense_02.txt | AC | 5 ms | 4528 KB |
04_dense_03.txt | AC | 8 ms | 5412 KB |
05_sparse_00.txt | AC | 264 ms | 27208 KB |
05_sparse_01.txt | AC | 13 ms | 5268 KB |
05_sparse_02.txt | AC | 4 ms | 4960 KB |
05_sparse_03.txt | AC | 5 ms | 5080 KB |
06_large_00.txt | TLE | 2210 ms | 127324 KB |
06_large_01.txt | TLE | 2209 ms | 117068 KB |
06_large_02.txt | TLE | 2210 ms | 129152 KB |
06_large_03.txt | TLE | 2209 ms | 125224 KB |
06_large_04.txt | TLE | 2209 ms | 124136 KB |
06_large_05.txt | TLE | 2209 ms | 121164 KB |
06_large_06.txt | TLE | 2210 ms | 128352 KB |
06_large_07.txt | TLE | 2210 ms | 127328 KB |
06_large_08.txt | TLE | 2209 ms | 118980 KB |
06_large_09.txt | TLE | 2209 ms | 118084 KB |
07_bridge_connected_00.txt | AC | 1921 ms | 89640 KB |
07_bridge_connected_01.txt | AC | 1995 ms | 100412 KB |
07_bridge_connected_02.txt | AC | 8 ms | 5116 KB |