题目大意:给出正方形任意两点坐标,求另外两个点的坐标?
解题思路:由于是正方形,又平行坐标轴,则规律可循。只需要看给出点是同行,同列,对角点或者都不满足即可。
题目来源:http://codeforces.com/problemset/problem/459/A
code:
#include <iostream>
#include <cstdio>
using namespace std;
int x1,x2,y1,y2;
int abs(int x){return x>0?x:-x;}
int main(){
while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF){
if(x1==x2&&y2!=y1) //同行
printf("%d %d %d %d\n",x1+y2-y1,y1,x2+y2-y1,y2);
else if(y1==y2&&x2!=x1) //同列
printf("%d %d %d %d\n",x1,y1+x2-x1,x2,y2+x2-x1);
else{
if(abs(y2-y1)==abs(x2-x1)&&y2!=y1) //对角点
printf("%d %d %d %d\n",x1,y2,x2,y1);
else //都不满足
printf("-1\n");
}
}
return 0;
}