NC21842. 正方形检测
描述
输入描述
第一行输入四个整数 ()
第二行输入四个整数 ()
输出描述
如果可以构成正方形,输出"It's a square"
否则输出"Not a square"
示例1
输入:
0 0 2 2 0 2 0 2
输出:
It's a square
示例2
输入:
0 1 5 6 1 6 0 5
输出:
It's a square
示例3
输入:
0 0 7 7 0 3 0 3
输出:
Not a square
C 解法, 执行用时: 2ms, 内存消耗: 436K, 提交时间: 2023-03-15 20:38:09
#include<stdio.h> int main(){ int i,j,k,t=0,x[4],y[4],s[7]; for(i=0;i<4;i++) scanf("%d",&x[i]); for(i=0;i<4;i++) scanf("%d",&y[i]); for(i=0,j=0;j<3;j++){ for(k=j+1;k<4;k++) s[i++]=(y[j]-y[k])*(y[j]-y[k])+(x[j]-x[k])*(x[j]-x[k]); } for(j=0;j<i;j++) for(k=0;k<i;k++){ if(s[j]==s[k]) t++; } if(t==20) printf("It's a square"); else printf("Not a square"); }
pypy3(pypy3.6.1) 解法, 执行用时: 48ms, 内存消耗: 20360K, 提交时间: 2020-09-11 10:51:32
x = list(map(int, input().split())) y = list(map(int, input().split())) ans = [] for i in range(4): for j in range(i+1, 4): ans.append((x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j]) * (y[i] - y[j])) ans.sort() if ans[0] == ans[1] and ans[1] == ans[2] and ans[2] == ans[3] and ans[4] == ans[5]: print("It's a square") else: print("Not a square")
Python3 解法, 执行用时: 64ms, 内存消耗: 7116K, 提交时间: 2021-11-13 10:18:27
x=[ int(i) for i in input().split(' ')] y=[ int(i) for i in input().split(' ')] x0=sum(x)/4 y0=sum(y)/4 tep=(x[0]-x0)**2+(y[0]-y0)**2 a=(x[0]-x[1])**2+(y[0]-y[1])**2 b=(x[2]-x[1])**2+(y[2]-y[1])**2 if min(a,b)==2*tep: print("It's a square") else: print("Not a square")