Submission #420581


Source Code Expand

import qualified Data.Vector as V
import qualified Data.Set as S
main =  mapM_ (putStrLn . (\x->if x then "Yes" else "No") . solve) . analyze . lines =<< getContents
analyze (hw:xs) = (h,w,y): analyze ys where
  [h,w] = map read . words $ hw
  (y,ys) = splitAt h xs
analyze _ = []
solve (h,w,cs) = fst $ dfs S.empty si sj where
  (si,sj) = fs 0 0
  b = V.fromList $ map V.fromList cs
  fs i j
    | b V.! i V.! j == 's' = (i,j)
    | otherwise = fs (i+(j+1)`div`w) ((j+1)`mod`w)
  dfs s i j
    | i<0 || h<=i || j<0 || w<=j = (False,s)
    | c=='#' = (False,s)
    | c=='g' = (True,s)
    | S.member (i,j) s = (False,s)
    | otherwise = foldr f (False,S.insert (i,j) s) [(0,1),(0,-1),(1,0),(-1,0)]
    where
      c = b V.! i V.! j
      f (di,dj) (r,s) = (r || q, t) where (q,t) = dfs s (i+di) (j+dj)

Submission Info

Submission Time
Task A - 深さ優先探索
User jasy
Language Haskell (Haskell Platform 2014.2.0.0)
Score 100
Code Size 823 Byte
Status AC
Exec Time 1109 ms
Memory 97688 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 5
AC × 83
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt
All 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt AC 30 ms 1400 KB
00_min_02.txt AC 29 ms 1432 KB
00_min_03.txt AC 30 ms 1428 KB
00_min_04.txt AC 29 ms 1428 KB
00_min_05.txt AC 31 ms 1424 KB
00_min_06.txt AC 30 ms 1424 KB
00_min_07.txt AC 30 ms 1304 KB
00_min_08.txt AC 29 ms 1424 KB
00_sample_01.txt AC 29 ms 1428 KB
00_sample_02.txt AC 28 ms 1352 KB
00_sample_03.txt AC 30 ms 1456 KB
00_sample_04.txt AC 30 ms 1552 KB
00_sample_05.txt AC 29 ms 1424 KB
01_rnd_00.txt AC 154 ms 18712 KB
01_rnd_01.txt AC 801 ms 59672 KB
01_rnd_02.txt AC 785 ms 57876 KB
01_rnd_03.txt AC 1109 ms 97688 KB
01_rnd_04.txt AC 731 ms 57628 KB
01_rnd_05.txt AC 115 ms 13596 KB
01_rnd_06.txt AC 545 ms 33428 KB
01_rnd_07.txt AC 475 ms 32024 KB
01_rnd_08.txt AC 114 ms 13468 KB
01_rnd_09.txt AC 126 ms 13592 KB
01_rnd_10.txt AC 531 ms 29904 KB
01_rnd_11.txt AC 155 ms 18708 KB
01_rnd_12.txt AC 818 ms 57620 KB
01_rnd_13.txt AC 630 ms 58820 KB
01_rnd_14.txt AC 120 ms 13596 KB
01_rnd_15.txt AC 749 ms 52508 KB
01_rnd_16.txt AC 155 ms 18584 KB
01_rnd_17.txt AC 738 ms 52756 KB
01_rnd_18.txt AC 127 ms 13584 KB
01_rnd_19.txt AC 173 ms 18712 KB
02_rndhard_00.txt AC 154 ms 18584 KB
02_rndhard_01.txt AC 157 ms 18712 KB
02_rndhard_02.txt AC 215 ms 18712 KB
02_rndhard_03.txt AC 206 ms 18716 KB
02_rndhard_04.txt AC 152 ms 18580 KB
02_rndhard_05.txt AC 152 ms 18580 KB
02_rndhard_06.txt AC 148 ms 18196 KB
02_rndhard_07.txt AC 124 ms 13592 KB
02_rndhard_08.txt AC 152 ms 17692 KB
02_rndhard_09.txt AC 152 ms 17688 KB
02_rndhard_10.txt AC 147 ms 17988 KB
02_rndhard_11.txt AC 145 ms 17944 KB
02_rndhard_12.txt AC 144 ms 17876 KB
02_rndhard_13.txt AC 152 ms 17960 KB
02_rndhard_14.txt AC 162 ms 18708 KB
02_rndhard_15.txt AC 160 ms 18712 KB
02_rndhard_16.txt AC 117 ms 13592 KB
02_rndhard_17.txt AC 111 ms 13592 KB
02_rndhard_18.txt AC 120 ms 13596 KB
02_rndhard_19.txt AC 137 ms 17560 KB
02_rndhard_20.txt AC 113 ms 13588 KB
02_rndhard_21.txt AC 112 ms 13592 KB
02_rndhard_22.txt AC 148 ms 17808 KB
02_rndhard_23.txt AC 143 ms 17812 KB
02_rndhard_24.txt AC 148 ms 18712 KB
02_rndhard_25.txt AC 152 ms 18712 KB
02_rndhard_26.txt AC 118 ms 13592 KB
02_rndhard_27.txt AC 114 ms 13512 KB
02_rndhard_28.txt AC 144 ms 18200 KB
02_rndhard_29.txt AC 149 ms 18200 KB
02_rndhard_30.txt AC 121 ms 13588 KB
02_rndhard_31.txt AC 121 ms 13588 KB
02_rndhard_32.txt AC 155 ms 17816 KB
02_rndhard_33.txt AC 149 ms 17816 KB
02_rndhard_34.txt AC 147 ms 18384 KB
02_rndhard_35.txt AC 153 ms 18324 KB
02_rndhard_36.txt AC 151 ms 18320 KB
02_rndhard_37.txt AC 142 ms 18324 KB
02_rndhard_38.txt AC 147 ms 17684 KB
02_rndhard_39.txt AC 142 ms 17684 KB
03_rndhardsmall_00.txt AC 28 ms 1432 KB
03_rndhardsmall_01.txt AC 29 ms 1432 KB
03_rndhardsmall_02.txt AC 30 ms 1552 KB
03_rndhardsmall_03.txt AC 28 ms 1432 KB
03_rndhardsmall_04.txt AC 28 ms 1352 KB
03_rndhardsmall_05.txt AC 28 ms 1424 KB
03_rndhardsmall_06.txt AC 28 ms 1432 KB
03_rndhardsmall_07.txt AC 28 ms 1408 KB
03_rndhardsmall_08.txt AC 28 ms 1428 KB
03_rndhardsmall_09.txt AC 28 ms 1420 KB