Submission #38834722


Source Code Expand

Copy
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
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
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
AC × 1
AC × 53
TLE × 11
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


2025-04-20 (Sun)
06:45:25 +00:00