小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')