Прикреплённый файл «lab.py»
Загрузка 1 #!/usr/bin
2 # coding: UTF8
3 '''
4 Лабиринт задан целочисленной матрицей NxN, 0 означает проходимое место, 1 — стену.
5 Проверить, можно ли пройти из верхнего левого угла в правый нижний и определить длину кратчайшего пути
6 '''
7 import sys
8
9 def out(T,frame=""):
10 if frame: print frame*(len(T[0])+2)
11 for l in T:
12 print frame+"".join([" #"[c] for c in l])+frame
13 if frame: print frame*(len(T[0])+2)
14
15 def reach(T,st,en):
16 W,H,Step=len(T[0]),len(T),2
17 T[st[0]][st[1]],Front=Step,[st]
18 D=((-1,0),(0,-1),(1,0),(0,1))
19 while Front:
20 Look,Front=Front,[]
21 Step+=1
22 for x,y in Look:
23 for dx, dy in D:
24 X,Y=x+dx,y+dy
25 if X>=0 and X<W and Y>=0 and Y<H and not T[X][Y]:
26 Front.append((X,Y))
27 T[X][Y]=Step
28 return T[en[0]][en[1]]
29
30 T=input()
31
32 if len(sys.argv)>1:
33 out(T,'+')
34
35 print reach(T, (0,0), (len(T)-1,)*2)
Прикреплённые файлы
Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2011-09-26 11:35:28, 1.0 KB) [[attachment:Sav_2_ sostav_all.py]]
- [получить | показать] (2011-09-26 11:35:28, 2.0 KB) [[attachment:content.py]]
- [получить | показать] (2011-09-26 11:35:28, 1.6 KB) [[attachment:content_gen.py]]
- [получить | показать] (2011-09-26 11:35:28, 1.0 KB) [[attachment:lab.py]]
- [получить | показать] (2011-09-26 11:35:28, 4.4 KB) [[attachment:lab_gen.py]]
Вам нельзя прикреплять файлы к этой странице.