写了个自己的思路, 坐标是正常建的
direc = [(-1,0),(-0.5,1),(0.5,1),(1,0),(0.5,-1),(-0.5,-1)]
坐标为蜂格的中心
最后判断要走多少分两种情况:
1. y<2x 离的很远, 那就 其中一个先到同一行, 再直走过去
2. 要是 y > 2x, 答案就是 y
direc = [(-1,0),(-0.5,1),(0.5,1),(1,0),(0.5,-1),(-0.5,-1)]
d1,p1,q1,d2,p2,q2 = map(int ,input().split())
def run(d,p,q):
di = direc[d]
x= 0
y = 0
x += p*di[0]
y += p*di[1]
di = direc[(d+2) % 6]
x += q*di[0]
y += q*di[1]
return x,y
x1,y1 = run(d1,p1,q1)
x2,y2 = run(d2,p2,q2)
ans = 0
delx = abs(x1-x2)
dely = abs(y1-y2)
if dely < int(2*delx):
ans += abs(y1-y2)
delx -= ans * 0.5
ans += delx
print(int(ans))
else:
print(int(dely))