Submission #280084


Source Code Expand

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 入力処理
row, column = map(int, raw_input().split())
sy, sx = map(int, raw_input().split())
gy, gx = map(int, raw_input().split())
sy -= 1
sx -= 1
gy -= 1
gx -= 1
DATA = [raw_input() for i in range(row)]


# 行けるかどうか2次元配列に格納
map_lst = [[-1 for j in range(column)] for i in range(row)]
for i in xrange(row):
    for j in xrange(column):
        if DATA[i][j] == ".":
            map_lst[i][j] = map_lst[i][j] = 0

# スタート、ゴールの設定
map_lst[sy][sx] = 1
map_lst[gy][gx] = 1

# print map_lst

# 幅優先探索
import Queue
q = Queue.Queue()
q.put(sy)
q.put(sx)
q.put(0)   # [state, depth]
checked = []
while not q.empty():
    current_statey = q.get()
    current_statex = q.get()
    current_depth = q.get()

    # すでに通っている
    if [current_statey, current_statex] in checked:
        continue

    # 途中経過
    # print ([current_statey, current_statex], current_depth)

    # ゴール
    if [current_statey, current_statex] == [gy, gx]:
        print(current_depth)
        break

    # 次の状態を求める
    current_depth += 1
    if map_lst[current_statey][current_statex + 1] >= 0:
        q.put(current_statey)
        q.put(current_statex + 1)
        q.put(current_depth)
    if map_lst[current_statey][current_statex - 1] >= 0:
        q.put(current_statey)
        q.put(current_statex - 1)
        q.put(current_depth)
    if map_lst[current_statey - 1][current_statex] >= 0:
        q.put(current_statey - 1)
        q.put(current_statex)
        q.put(current_depth)
    if map_lst[current_statey + 1][current_statex] >= 0:
        q.put(current_statey + 1)
        q.put(current_statex)
        q.put(current_depth)

    # 通ったリストに追加
    checked.append([current_statey, current_statex])

Submission Info

Submission Time
Task C - 幅優先探索
User san46
Language Python (2.7.3)
Score 100
Code Size 1917 Byte
Status AC
Exec Time 642 ms
Memory 4120 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 25
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
All subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 59 ms 3808 KiB
subtask0_sample02.txt AC 58 ms 3792 KiB
subtask0_sample03.txt AC 642 ms 4056 KiB
subtask1_01.txt AC 160 ms 3924 KiB
subtask1_02.txt AC 160 ms 3924 KiB
subtask1_03.txt AC 138 ms 3936 KiB
subtask1_04.txt AC 632 ms 4048 KiB
subtask1_05.txt AC 231 ms 3924 KiB
subtask1_06.txt AC 353 ms 3924 KiB
subtask1_07.txt AC 59 ms 3792 KiB
subtask1_08.txt AC 64 ms 3808 KiB
subtask1_09.txt AC 195 ms 3912 KiB
subtask1_10.txt AC 78 ms 3796 KiB
subtask1_11.txt AC 618 ms 4120 KiB
subtask1_12.txt AC 344 ms 3928 KiB
subtask1_13.txt AC 198 ms 3932 KiB
subtask1_14.txt AC 60 ms 3804 KiB
subtask1_15.txt AC 224 ms 3936 KiB
subtask1_16.txt AC 221 ms 3932 KiB
subtask1_17.txt AC 382 ms 4048 KiB
subtask1_18.txt AC 286 ms 3928 KiB
subtask1_19.txt AC 157 ms 3928 KiB
subtask1_20.txt AC 173 ms 3928 KiB
subtask1_21.txt AC 243 ms 3932 KiB
subtask1_22.txt AC 171 ms 3936 KiB