結果

問題 No.323 yuki国
ユーザー ynyn
提出日時 2016-06-11 17:40:39
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 4,901 ms / 5,000 ms
コード長 1,188 bytes
コンパイル時間 397 ms
コンパイル使用メモリ 82,140 KB
実行使用メモリ 150,728 KB
最終ジャッジ日時 2024-10-09 12:58:24
合計ジャッジ時間 64,255 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 62 ms
67,816 KB
testcase_01 AC 102 ms
78,936 KB
testcase_02 AC 62 ms
67,800 KB
testcase_03 AC 243 ms
81,520 KB
testcase_04 AC 128 ms
79,560 KB
testcase_05 AC 158 ms
80,128 KB
testcase_06 AC 134 ms
79,888 KB
testcase_07 AC 64 ms
68,588 KB
testcase_08 AC 4,901 ms
150,592 KB
testcase_09 AC 4,792 ms
150,728 KB
testcase_10 AC 64 ms
67,400 KB
testcase_11 AC 115 ms
79,472 KB
testcase_12 AC 116 ms
79,828 KB
testcase_13 AC 3,083 ms
144,324 KB
testcase_14 AC 3,062 ms
144,820 KB
testcase_15 AC 2,706 ms
138,832 KB
testcase_16 AC 2,848 ms
143,488 KB
testcase_17 AC 3,270 ms
145,040 KB
testcase_18 AC 998 ms
100,244 KB
testcase_19 AC 1,816 ms
119,068 KB
testcase_20 AC 3,213 ms
146,696 KB
testcase_21 AC 3,485 ms
146,836 KB
testcase_22 AC 3,250 ms
147,196 KB
testcase_23 AC 3,286 ms
146,388 KB
testcase_24 AC 2,742 ms
137,564 KB
testcase_25 AC 4,133 ms
144,372 KB
testcase_26 AC 3,187 ms
143,640 KB
testcase_27 AC 3,158 ms
144,968 KB
testcase_28 AC 3,115 ms
144,676 KB
testcase_29 AC 3,123 ms
144,564 KB
testcase_30 AC 63 ms
68,532 KB
testcase_31 AC 129 ms
79,572 KB
testcase_32 AC 131 ms
79,876 KB
testcase_33 AC 128 ms
79,628 KB
testcase_34 AC 152 ms
79,980 KB
testcase_35 AC 63 ms
68,772 KB
testcase_36 AC 137 ms
79,952 KB
testcase_37 AC 135 ms
79,948 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import queue
h, w = map(int,input().split())
a, si, sj = map(int,input().split())
b, gi, gj = map(int,input().split())
m = [list(input()) for i in range(h)]
maxsize = 1200
visited = [[[False] * maxsize for i in range(w)] for j in range(h)]

qi = queue.Queue(h*w*maxsize)
qj = queue.Queue(h*w*maxsize)
qsize = queue.Queue(h*w*maxsize)
visited[si][sj][a] = True
qi.put(si)
qj.put(sj)
qsize.put(a)

dx = [0, 1, 0,-1]
dy = [1, 0,-1, 0]

while not qsize.empty():
    curi = qi.get()
    curj = qj.get()
    cursize = qsize.get()
    #print(cursize,curi, curj)
    for i in range(4):
        nexti = curi + dx[i]
        nextj = curj + dy[i]
        if 0 <= nexti < h and 0 <= nextj < w:
            pass
        else:
            continue

        if m[nexti][nextj] == "*":
            nextsize = cursize + 1
        else:
            nextsize = cursize - 1

        if 0 < nextsize < maxsize:
            pass
        else:
            continue

        if not visited[nexti][nextj][nextsize]:
            visited[nexti][nextj][nextsize] = True
            qi.put(nexti)
            qj.put(nextj)
            qsize.put(nextsize)

if visited[gi][gj][b]:
    print("Yes")
else:
    print("No")
0