結果

問題 No.5015 Escape from Labyrinth
ユーザー nikoro256nikoro256
提出日時 2023-04-15 20:02:47
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 2,138 bytes
コンパイル時間 932 ms
コンパイル使用メモリ 87,188 KB
実行使用メモリ 82,208 KB
スコア 0
最終ジャッジ日時 2023-04-15 20:03:13
合計ジャッジ時間 21,769 ms
ジャッジサーバーID
(参考情報)
judge12 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 RE -
testcase_01 RE -
testcase_02 RE -
testcase_03 RE -
testcase_04 RE -
testcase_05 RE -
testcase_06 RE -
testcase_07 WA -
testcase_08 RE -
testcase_09 RE -
testcase_10 RE -
testcase_11 RE -
testcase_12 RE -
testcase_13 RE -
testcase_14 RE -
testcase_15 RE -
testcase_16 RE -
testcase_17 RE -
testcase_18 WA -
testcase_19 RE -
testcase_20 WA -
testcase_21 RE -
testcase_22 RE -
testcase_23 RE -
testcase_24 WA -
testcase_25 RE -
testcase_26 RE -
testcase_27 RE -
testcase_28 RE -
testcase_29 RE -
testcase_30 RE -
testcase_31 RE -
testcase_32 RE -
testcase_33 RE -
testcase_34 RE -
testcase_35 RE -
testcase_36 RE -
testcase_37 RE -
testcase_38 RE -
testcase_39 WA -
testcase_40 RE -
testcase_41 RE -
testcase_42 RE -
testcase_43 RE -
testcase_44 RE -
testcase_45 RE -
testcase_46 RE -
testcase_47 RE -
testcase_48 RE -
testcase_49 RE -
testcase_50 RE -
testcase_51 RE -
testcase_52 RE -
testcase_53 RE -
testcase_54 RE -
testcase_55 RE -
testcase_56 RE -
testcase_57 RE -
testcase_58 RE -
testcase_59 RE -
testcase_60 RE -
testcase_61 WA -
testcase_62 RE -
testcase_63 RE -
testcase_64 RE -
testcase_65 RE -
testcase_66 RE -
testcase_67 RE -
testcase_68 RE -
testcase_69 RE -
testcase_70 RE -
testcase_71 RE -
testcase_72 RE -
testcase_73 RE -
testcase_74 RE -
testcase_75 TLE -
testcase_76 -- -
testcase_77 -- -
testcase_78 -- -
testcase_79 -- -
testcase_80 -- -
testcase_81 -- -
testcase_82 -- -
testcase_83 -- -
testcase_84 -- -
testcase_85 -- -
testcase_86 -- -
testcase_87 -- -
testcase_88 -- -
testcase_89 -- -
testcase_90 -- -
testcase_91 -- -
testcase_92 -- -
testcase_93 -- -
testcase_94 -- -
testcase_95 -- -
testcase_96 -- -
testcase_97 -- -
testcase_98 -- -
testcase_99 -- -
権限があれば一括ダウンロードができます

ソースコード

diff #

def firstsolve():
    re=[]
    point=BFS(St,K)
    for b in BFS_Restoration(K,point)[::-1]:
        re.append(b)
    point=BFS(K,G)
    for b in BFS_Restoration(G,point)[::-1]:
        re.append(b)
    return re
    
def BFS_Restoration(end,point):
    thispoint=point[end[0]*N+end[1]]
    pos=end
    re=[pos]
    while thispoint!=0:
        for d in [[1,0],[-1,0],[0,1],[0,-1]]:
            x=pos[0]+d[0]
            y=pos[1]+d[1]
            if 0<x<=N and 0<=y<N and point[x*N+y]==thispoint-1:
                re.append((x,y))
                thispoint=point[x*N+y]
                pos=(x,y)
                break
    return re

def BFS(pos,end):
    point=[-1 for _ in range(N*N)]
    dq=deque()
    dq.append(pos)
    while len(dq)!=0:
        p=dq.popleft()
        if p==end:
            break
        for d in [[1,0],[-1,0],[0,1],[0,-1]]:
            x=p[0]+d[0]
            y=p[1]+d[1]
            if 0<x<=N and 0<=y<N and S[x][y]!='#' and S[x][y]!='E' and point[x*N+y]==-1:
                dq.append((x,y))
                point[x*N+y]=point[p[0]*N+p[1]]+1
    return point

def changetoans(way):
    pos=St
    ans=[]
    for w in way:
        d=[[1,0],[-1,0],[0,1],[0,-1]]
        change=[w[0]-pos[0],w[1]-pos[1]]
        for i in range(4):
            if change==d[i]:
                break
        ans_d=[]
        if 0<=i<=3:
            ans_d.append('M')
        if i==0:
            ans_d.append('D')
        elif i==1:
            ans_d.append('U')
        elif i==2:
            ans_d.append('R')
        elif i==3:
            ans_d.append('L')
        ans.append(ans_d)
        pos=w
    return ans

import sys
from collections import deque
input=sys.stdin.readline
N,D,H=map(int,input().split())
S=[]
St,G,K=(),(),()
for i in range(N):
    S.append(input())
    for j in range(N):
        if S[i][j]=='S':
            St=(i,j)
        elif S[i][j]=='G':
            G=(i,j)
        elif S[i][j]=='K':
            K=(i,j)
M=int(input())
dic={}
for _ in range(M):
    y,x,d=map(int,input().split())
    dic[(y,x)]=d
way=firstsolve()
print((St,K,G))
print(way)
ans=changetoans(way)
for a in ans:
    print(' '.join(a))
0