Lan Xiang's Square
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
0
-
描述
-
Excavator technology which is strong, fast to Shandong to find Lan Xiang.
Then the question comes.. :)
for this problem , i will give you four points. you just judge if they can form a square.
if they can, print "Yes", else print "No".
Easy ? just AC it.
-
输入
-
T <= 105 cases.
for every case
four points, and every point is a grid point .-10^8 <= all interger <= 10^8。
grid point is both x and y are interger.
输出
- Yes or No 样例输入
-
1 1 1 -1 1 -1 -1 1 -1
样例输出
-
Yes
-
-
#include<stdio.h> #include<algorithm> #include<math.h> #include<string.h> using namespace std; struct zz { int x,y; }p[10]; int cmp(zz x,zz y) { if(x.x==y.x) return x.y>y.y; return x.x<y.x; } double len(int x1,int y1,int x2,int y2) { return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); } int main() { int t; int i,j; scanf("%d",&t); while(t--) { for(i=0;i<4;i++) scanf("%d%d",&p[i].x,&p[i].y); int a,b,c,d; sort(p,p+4,cmp); a=len(p[0].x,p[0].y,p[3].x,p[3].y);//排序后是0 3对角,1 2对角 b=len(p[2].x,p[2].y,p[1].x,p[1].y); c=len(p[0].x,p[0].y,p[1].x,p[1].y);//c d 为相邻两边 d=len(p[1].x,p[1].y,p[3].x,p[3].y); if(a!=b||a==0) { printf("No\n"); continue; } else if(a==b) { if(c==d) printf("Yes\n"); else printf("No\n"); } } return 0; }
-
T <= 105 cases.