Submission #51785046
Source Code Expand
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 :: IO ()
main = do
nm <- bsGetLnInts
uvs <- replicateM (nm !! 1) bsGetLnInts
st <- bsGetLnInts
let ans = abc132e (nm ++ st) uvs
print ans
bsGetLnInts :: IO [Int]
bsGetLnInts = unfoldr (BS.readInt . BS.dropWhile isSpace) <$> BS.getLine
abc132e :: [Int] -> [[Int]] -> Int
abc132e [n,m,s,t] uvs = bfs 0 (S.singleton start) [start] []
where
g = accumArray (flip (:)) [] (1,n) [(u, v) | u:v:_ <- uvs]
start = (s,0)
goal = (t,0)
bfs :: Int -> S.Set (Int,Int) -> [(Int,Int)] -> [(Int,Int)] -> Int
bfs _nt _ [] [] = -1 -- 経路なし
bfs cnt visited [] nexts = bfs (succ cnt) visited nexts [] -- BFSを一段進める
bfs cnt visited (uk@(u,k):uks) nexts
| uk == goal = div cnt 3 -- ゴールしたら距離/3が答え
| otherwise = bfs cnt visited1 uks nexts1
where
j = mod (succ k) 3
vjs = [vj | v <- g ! u, let vj = (v,j), notElem vj visited]
visited1 = S.union visited $ S.fromList vjs
nexts1 = vjs ++ nexts
{-
格調高くやる。
-}
Submission Info
| Submission Time |
|
| Task |
E - Hopscotch Addict |
| User |
joetheshootingst |
| Language |
Haskell (GHC 9.4.5) |
| Score |
0 |
| Code Size |
1295 Byte |
| Status |
TLE |
| Exec Time |
2212 ms |
| Memory |
42756 KiB |
Compile Error
app/Main.hs:22:1: warning: [-Wincomplete-patterns]
Pattern match(es) are non-exhaustive
In an equation for ‘abc132e’:
Patterns of type ‘[Int]’, ‘[[Int]]’ not matched:
[] _
[_] _
[_, _] _
[_, _, _] _
...
|
22 | abc132e [n,m,s,t] uvs = bfs 0 (S.singleton start) [start] []
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
app/Main.hs:22:12: warning: [-Wunused-matches]
Defined but not used: ‘m’
|
22 | abc132e [n,m,s,t] uvs = bfs 0 (S.singleton start) [start] []
| ^
Judge Result
| Set Name |
All |
Sample |
| Score / Max Score |
0 / 500 |
0 / 0 |
| Status |
|
|
| Set Name |
Test Cases |
| All |
cycle_01, cycle_02, cycle_03, killer_01, killer_02, killer_03, killer_04, long_01, long_02, random_dense_01, random_dense_02, random_max_01, random_max_02, random_max_03, random_max_04, random_max_05, random_max_06, sample_01, sample_02, sample_03, sample_04, tournament_01, tournament_02 |
| Sample |
sample_01, sample_02, sample_03, sample_04 |
| Case Name |
Status |
Exec Time |
Memory |
| cycle_01 |
TLE |
2209 ms |
36328 KiB |
| cycle_02 |
TLE |
2209 ms |
36408 KiB |
| cycle_03 |
TLE |
2209 ms |
36380 KiB |
| killer_01 |
AC |
752 ms |
35528 KiB |
| killer_02 |
AC |
612 ms |
35588 KiB |
| killer_03 |
TLE |
2210 ms |
39396 KiB |
| killer_04 |
AC |
92 ms |
42756 KiB |
| long_01 |
TLE |
2212 ms |
36324 KiB |
| long_02 |
TLE |
2209 ms |
36324 KiB |
| random_dense_01 |
AC |
381 ms |
18312 KiB |
| random_dense_02 |
AC |
462 ms |
32372 KiB |
| random_max_01 |
TLE |
2209 ms |
36188 KiB |
| random_max_02 |
TLE |
2209 ms |
36152 KiB |
| random_max_03 |
TLE |
2209 ms |
36276 KiB |
| random_max_04 |
TLE |
2209 ms |
36184 KiB |
| random_max_05 |
AC |
62 ms |
36488 KiB |
| random_max_06 |
TLE |
2212 ms |
36200 KiB |
| sample_01 |
AC |
2 ms |
6940 KiB |
| sample_02 |
AC |
2 ms |
6968 KiB |
| sample_03 |
AC |
2 ms |
6700 KiB |
| sample_04 |
AC |
1 ms |
7004 KiB |
| tournament_01 |
AC |
612 ms |
35536 KiB |
| tournament_02 |
AC |
932 ms |
35572 KiB |