fork(1) download
  1. #https://i...content-available-to-author-only...e.com/n7GgJb
  2. #
  3. #Hladanie najkratsej cesty medzi 2 polickami
  4. #
  5. #vstup:
  6. #n m - rozmery, riadky a stlpce
  7. #n riadkov obsahujucich mapu bludiska - '.' prazdne, '#' prekazka/stena
  8. #sr ss - suradnice startovacieho policka
  9. #cr cs - suradnice ciela
  10. import queue
  11.  
  12. n,m = [int(_) for _ in input().split()]
  13. print(n,m)
  14. mapa = [[x for x in input()] for _ in range(n)]
  15. for riadok in mapa:
  16. print(*riadok) #vypis jedneho riadku
  17. for riadok in mapa:
  18. print("".join(riadok)) #vypise bez medzier
  19. print(mapa[1][1])
  20. print(mapa[2][4])
  21. sr,ss = [int(_) for _ in input().split()]
  22. cr,cs = [int(_) for _ in input().split()]
  23.  
  24. def da_sa(r, s):
  25. if not (0 <= r < n): return False
  26. if not (0 <= s < m): return False
  27. return mapa[r][s] == '.'
  28.  
  29. policka = queue.Queue() #policka na spracovanie - usporiadane dvojice (riadok,stlpec)
  30. mapa[sr][ss] = 0
  31. policka.put( (sr, ss) ) #vlozime startovacie policko
  32. while not policka.empty(): #pokial nie je prazny zoznam policok
  33. r,s = policka.get() #vyberie policko
  34.  
  35. for smer in [(-1,0), (0,1), (1,0), (0,-1)]: #pre vsetky smery
  36. nr, ns = r+smer[0], s+smer[1] #nove policko
  37. if da_sa(nr, ns): #ak sa da vojst na dane policko, t.j. '.'
  38. mapa[nr][ns] = 1+mapa[r][s] #o 1 krok viac ako aktualne policko
  39. policka.put( (nr, ns) ) #pridame policko na spracovanie
  40.  
  41. for riadok in mapa:
  42. print(*riadok) #vypis jedneho riadku
  43. print(mapa[cr][cs])
Success #stdin #stdout 0.02s 28104KB
stdin
8 11
...........
...........
....#......
....#......
....#.#....
....#.#....
......#....
......#....
6 2
6 8

stdout
8 11
. . . . . . . . . . .
. . . . . . . . . . .
. . . . # . . . . . .
. . . . # . . . . . .
. . . . # . # . . . .
. . . . # . # . . . .
. . . . . . # . . . .
. . . . . . # . . . .
...........
...........
....#......
....#......
....#.#....
....#.#....
......#....
......#....
.
#
8 7 6 7 8 9 10 11 12 13 14
7 6 5 6 7 8 9 10 11 12 13
6 5 4 5 # 7 8 9 10 11 12
5 4 3 4 # 6 7 8 9 10 11
4 3 2 3 # 5 # 9 10 11 12
3 2 1 2 # 4 # 10 11 12 13
2 1 0 1 2 3 # 11 12 13 14
3 2 1 2 3 4 # 12 13 14 15
12