def moves(x,y): s=0 while x>4 or y>4: if x>y>0: x-=2 y-=1 elif y>=x>0: x-=1 y-=2 elif x==0: x+=1 y-=2 elif y==0: x-=2 y+=1 s+=1 if x<y: x,y=y,x if (x,y)in((2,2),(4,4)): s+=4 elif (x,y) in ((1,0),(3,0),(4,1),(4,3),(3,2)): s+=3 elif (x,y) in ((4,0),(4,2),(3,3),(3,1),(2,0),(1,1)): s+=2 elif (x,y)==(2,1): s+=1 return s corner=(['a1','b2'],['a8','b7'],['h1','g2'],['h8','g7']) try: point=raw_input() while point!='': point=point.split() if point in corner or point[1:]+point[:1] in corner: s=4 else: s=moves(abs(ord(point[0][0])-ord(point[1][0])),abs(ord(point[0][1])-ord(point[1][1]))) print("To get from %s to %s takes %d knight moves."%(point[0],point[1],s)) point=raw_input() except: pass /************************************************************** Problem: 2124 User: admin Language: Python Result: Wrong Answer ****************************************************************/