小Q搜寻了整个魔法世界找到了四块魔法石所在地,当4块魔法石正好能构成一个正方形的时候将启动魔法阵,小Q就可以借此实现一个愿望。
现在给出四块魔法石所在的坐标,小Q想知道他是否能启动魔法阵
小Q搜寻了整个魔法世界找到了四块魔法石所在地,当4块魔法石正好能构成一个正方形的时候将启动魔法阵,小Q就可以借此实现一个愿望。
现在给出四块魔法石所在的坐标,小Q想知道他是否能启动魔法阵
输入的第一行包括一个整数(1≤T≤5)表示一共有T组数据
每组数据的第一行包括四个整数x[i](0≤x[i]≤10000),即每块魔法石所在的横坐标
每组数据的第二行包括四个整数y[i](0≤y[i]≤10000),即每块魔法石所在的纵坐标
对于每组数据,如果能启动魔法阵输出“Yes”否则输出“No”。
3 0022 0202 0156 1605 0077 0303
Yes Yes No
import sys
T = sys.stdin.readline()
T = int(T.strip())
for _ in range(T):
xs = sys.stdin.readline()
ys = sys.stdin.readline()
xs = xs.strip()
ys = ys.strip()
x = list(map(int,xs))
y = list(map(int,ys))
t = [(x[i],y[i]) for i in range(4)]
t.sort()
x01 = t[1][0] - t[0][0]
x23 = t[3][0] - t[2][0]
x02 = t[2][0] - t[0][0]
y01 = t[0][1] - t[1][1]
y13 = t[1][1] - t[3][1]
y02 = t[0][1] - t[2][1]
# print(t)
if x01 == x23 and y13 == y02 and (x02 == y01 or x02 + y01 == 0):
print("Yes")
else:
print("No")
def solve(xs, ys):
ad = [xs[3]-xs[0], ys[3]-ys[0]]
bc = [xs[2]-xs[1], ys[2]-ys[1]]
if (ad[0] ** 2 + ad[1] ** 2) == (bc[0] ** 2 + bc[1] ** 2) and (ad[0] * bc[0] + ad[1] * bc[1] == 0):
return True
return False
T = int(input())
for i in range(T):
xs = [int(item) for item in list(input())]
ys = [int(item) for item in list(input())]
if solve(xs, ys) == True:
print('Yes')
else:
print('No')