Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- lol=open('input.txt','r')
- height,width=lol.readline().split()
- ax,ay=lol.readline().split()
- bx,by=lol.readline().split()
- a=[ ['X' for j in range(-1,int(width)+1)] for i in range(-1,int(height)+1)]
- for i in range(1,int(height)+1):
- a[i][1:int(width)+1]=list(lol.readline())[:len(a[i])-2]
- px=[-10 for j in range(int(width)*int(height))]
- py=[-10 for j in range(int(width)*int(height))]
- def YOBA(ax,bx,ay,by,H,W):
- dx=[1,0,-1,0]
- dy=[0,1,0,-1]
- stop=True
- d=0
- a[ax][ay]=0
- while 1==1:
- stopy=True
- for y in range(1,H+1):
- for x in range(1,W+1):
- if a[y][x]==d:
- for k in range (0,4):
- if a[y+dy[k]][x+dx[k]]=='.':
- stopy=False
- a[y+dy[k]][x+dx[k]]=d+1
- d=d+1
- if stopy or a[by][bx]=='X':
- break
- if (a[by][bx]=='X'):
- return False
- lene=a[bx][by]
- x=by
- y=bx
- d=lene
- while d>0:
- px[d]=x
- py[d]=y
- d=d-1
- for k in range(4):
- if a[y + dy[k]][x + dx[k]]==d:
- x=x+dx[k]
- y=y+dy[k]
- break
- px[0]=ax
- py[0]=ay
- return True
- d=0
- try:
- if YOBA(int(ax)+1,int(bx)+1,int(ay)+1,int(by)+1,int(height),int(width)):
- for i in range(len(px)):
- if px[i]>-1:
- d=d+1
- print(d-1)
- else:
- print(-1)
- except:
- print(-1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement