มี Vector x, y, z ใน 2D ต้องเช็คว่า y ถึงได้จาก x โดย Rotate 90° CW หรือ Add z ซ้ำๆ
เช่น Input x = (-4, -2), y = (-1, 2), z = (-2, -1) Output True (x+z = (-6,-3) Rotate 90° -> (-1,2)? Wait: (-6,-3) rotate 90 CW = (-3,6)? ตัวอย่างอาจมีรายละเอียดต่างออกไป แต่โค้ดใช้ Algebra)

ขั้นตอนแก้ (Algebraic):
- ฟังก์ชัน util(p,q,r,s): d = r^2+s^2; ถ้า d==0 return p==0 and q==0; Return (p*r+q*s)%d==0 and (q*r-p*s)%d==0
- Main: ลอง 4 รูปแบบ Rotation ของ y ต่อ x แล้วเช็ค util
ตัวอย่างโค้ด
def util(p, q, r, s):
d = r * r + s * s
if d == 0:
return p == 0 and q == 0
return (p * r + q * s) % d == 0 and (q * r - p * s) % d == 0
def solve(p,q,r):
if util(p[0] - q[0], p[1] - q[1], r[0], r[1]) or util(p[0] + q[0], p[1] + q[1], r[0], r[1]) or util(p[0] - q[1], p[1] + q[0], r[0], r[1]) or util(p[0] + q[1], p[1] - q[0], r[0], r[1]):
return True
return False
p = (-4, -2)
q = (-1, 2)
r = (-2, -1)
print(solve(p, q, r))
Input
(-4, -2), (-1, 2), (-2, -1)
Output
True