#VSTUP:
# n m - rozmery
# n riadkov, m stlpcov: '.' prazdne policko, '#' stena/prekazka
# Sr Ss - pozicia startu (riadok, stlpec)
# Cr Cs - pozicia ciela (riadok, stlpec)
import queue
n,m = [int(_) for _ in input().split()]
mapa = [[_ for _ in input()] for r in range(n)]
Sr,Ss = [int(_) for _ in input().split()]
Cr,Cs = [int(_) for _ in input().split()]
print("Nacitane")
print(n,m)
print(Sr, Ss)
print(Cr, Cs)
print(mapa[2]) #vypise treti riadok
print(*mapa[2]) #vypise treti riadok
print("".join(mapa[2])) #vypise treti riadok
print(mapa[2][3]) # prvok na riadku 2 a stlpci 3
print("Cela mapa:")
for r in range(n):
print("".join(mapa[r]))
mapa[Sr][Ss] = 0
policka = queue.Queue() #novy rad, zoznam policok z ktorych treba dalej pokracovat
policka.put( (Sr, Ss) ) # usporiadana dvojica - riadok, stlpec
def da_sa(r, s):
if not (0 <= r < n): return False
if not (0 <= s < m): return False
return mapa[r][s] == '.'
while not policka.empty(): #ak treba este nejake policka spracovat
r,s = policka.get() #vyberieme prve policko
#print(r,s)
#pozerame na vsetky smery a hladame "prazdne" nenavstivene policko = '.'
for smer in [(1,0), (-1, 0), (0, 1), (0, -1),
(1,1), (-1, 1), (-1, -1), (1, -1)]: #smery pohybu
nr, ns = r+smer[0], s+smer[1] #policko posunute v danom smere
if da_sa(nr, ns):
mapa[nr][ns] = 1+mapa[r][s] #nastavime najmensiu vzdialenost
policka.put( (nr,ns) ) #pridaj policko na spracovanie
print("Cela mapa:")
for r in range(n):
print(*mapa[r])
print(mapa[Cr][Cs])
I1ZTVFVQOgojIG4gbSAtIHJvem1lcnkKIyBuIHJpYWRrb3YsIG0gc3RscGNvdjogJy4nIHByYXpkbmUgcG9saWNrbywgJyMnIHN0ZW5hL3ByZWthemthCiMgU3IgU3MgLSBwb3ppY2lhIHN0YXJ0dSAocmlhZG9rLCBzdGxwZWMpCiMgQ3IgQ3MgLSBwb3ppY2lhIGNpZWxhIChyaWFkb2ssIHN0bHBlYykKCmltcG9ydCBxdWV1ZQoKbixtID0gW2ludChfKSBmb3IgXyBpbiBpbnB1dCgpLnNwbGl0KCldCm1hcGEgPSBbW18gZm9yIF8gaW4gaW5wdXQoKV0gZm9yIHIgaW4gcmFuZ2UobildCgpTcixTcyA9IFtpbnQoXykgZm9yIF8gaW4gaW5wdXQoKS5zcGxpdCgpXQpDcixDcyA9IFtpbnQoXykgZm9yIF8gaW4gaW5wdXQoKS5zcGxpdCgpXQpwcmludCgiTmFjaXRhbmUiKQpwcmludChuLG0pCnByaW50KFNyLCBTcykKcHJpbnQoQ3IsIENzKQpwcmludChtYXBhWzJdKSAjdnlwaXNlIHRyZXRpIHJpYWRvawpwcmludCgqbWFwYVsyXSkgI3Z5cGlzZSB0cmV0aSByaWFkb2sKcHJpbnQoIiIuam9pbihtYXBhWzJdKSkgI3Z5cGlzZSB0cmV0aSByaWFkb2sKcHJpbnQobWFwYVsyXVszXSkgIyBwcnZvayBuYSByaWFka3UgMiBhIHN0bHBjaSAzCgpwcmludCgiQ2VsYSBtYXBhOiIpCmZvciByIGluIHJhbmdlKG4pOgoJcHJpbnQoIiIuam9pbihtYXBhW3JdKSkKCm1hcGFbU3JdW1NzXSA9IDAKcG9saWNrYSA9IHF1ZXVlLlF1ZXVlKCkgI25vdnkgcmFkLCB6b3puYW0gcG9saWNvayB6IGt0b3J5Y2ggdHJlYmEgZGFsZWogcG9rcmFjb3ZhdApwb2xpY2thLnB1dCggKFNyLCBTcykgKSAjIHVzcG9yaWFkYW5hIGR2b2ppY2EgLSByaWFkb2ssIHN0bHBlYwoKZGVmIGRhX3NhKHIsIHMpOgoJaWYgbm90ICgwIDw9IHIgPCBuKTogcmV0dXJuIEZhbHNlCglpZiBub3QgKDAgPD0gcyA8IG0pOiByZXR1cm4gRmFsc2UKCXJldHVybiBtYXBhW3JdW3NdID09ICcuJwoKd2hpbGUgbm90IHBvbGlja2EuZW1wdHkoKTogI2FrIHRyZWJhIGVzdGUgbmVqYWtlIHBvbGlja2Egc3ByYWNvdmF0CglyLHMgPSBwb2xpY2thLmdldCgpICN2eWJlcmllbWUgcHJ2ZSBwb2xpY2tvCgkjcHJpbnQocixzKQoJI3BvemVyYW1lIG5hIHZzZXRreSBzbWVyeSBhIGhsYWRhbWUgInByYXpkbmUiIG5lbmF2c3RpdmVuZSBwb2xpY2tvID0gJy4nCglmb3Igc21lciBpbiBbKDEsMCksICgtMSwgMCksICgwLCAxKSwgKDAsIC0xKSwKCQkJCSAoMSwxKSwgKC0xLCAxKSwgKC0xLCAtMSksICgxLCAtMSldOiAjc21lcnkgcG9oeWJ1CgkJbnIsIG5zID0gcitzbWVyWzBdLCBzK3NtZXJbMV0gI3BvbGlja28gcG9zdW51dGUgdiBkYW5vbSBzbWVyZQoJCWlmIGRhX3NhKG5yLCBucyk6CgkJCW1hcGFbbnJdW25zXSA9IDErbWFwYVtyXVtzXSAjbmFzdGF2aW1lIG5ham1lbnNpdSB2emRpYWxlbm9zdAoJCQlwb2xpY2thLnB1dCggKG5yLG5zKSApICNwcmlkYWogcG9saWNrbyBuYSBzcHJhY292YW5pZQoKcHJpbnQoIkNlbGEgbWFwYToiKQpmb3IgciBpbiByYW5nZShuKToKCXByaW50KCptYXBhW3JdKQpwcmludChtYXBhW0NyXVtDc10p
Nacitane
7 17
0 0
6 13
['.', '.', '.', '#', '.', '#', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.', '.']
. . . # . # . . . . . . . . . . .
...#.#...........
#
Cela mapa:
.....#...........
.....#...........
...#.#...........
...#.#...#.......
...#.#...#.......
...#.....#.......
...#.....#.......
Cela mapa:
0 1 2 3 4 # 12 12 12 12 12 13 14 15 16 17 18
1 1 2 3 4 # 11 11 11 11 12 13 14 15 16 17 18
2 2 2 # 4 # 10 10 10 11 12 13 14 15 16 17 18
3 3 3 # 5 # 9 9 10 # 12 13 14 15 16 17 18
4 4 4 # 6 # 8 9 10 # 13 13 14 15 16 17 18
5 5 5 # 7 7 8 9 10 # 14 14 14 15 16 17 18
6 6 6 # 8 8 8 9 10 # 15 15 15 15 16 17 18
15