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 |
|
|
| 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 |