您的位置:首页 > 其它

Lan Xiang's Square 1099 (简单几何 较坑 )

2015-09-13 11:12 323 查看

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 casefour 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");elseprintf("No\n");}}return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: