C - Knight Fork Editorial by kyopro_friends


この問題は「\((x_1,y_1)\) からナイトで \(2\) 手動いて \((x_2,y_2)\) に移動できますか?」という問題だと思うことができます。したがって、ナイトの移動方法 \(8\) 通りを \(1\) 手目 \(2\) 手目それぞれ全探索することで解けます。

x1,y1,x2,y2=map(int,input().split())
moves=[(1,2),(2,1),(-1,2),(-2,1),(1,-2),(2,-1),(-1,-2),(-2,-1)]

for move1 in moves:
  for move2 in moves:
    if x1+move1[0]+move2[0]==x2 and y1+move1[1]+move2[1]==y2:
      print("Yes")
      exit()

print("No")

posted:
last update: