Codeforces Round #261 (Div. 2) A

来源:互联网 发布:佛山谷歌优化 编辑:程序博客网 时间:2024/06/06 05:00

A. Pashmak and Garden


        题意:在坐标系内,给两个点,如果这两个点可以是一个平行于坐标轴的正方形的其中两个点,输出另外的两个点,否则输出-1。

        思路:题目保证两个点不会重叠,那么分类x1==x2和y1==y2。如果都不相等,判断abs(x1-x2)和abs(y1-y2)是否相等。分类处理即可。


#include <iostream>    #include <stdio.h>    #include <cmath>    #include <algorithm>    #include <iomanip>    #include <cstdlib>    #include <string>    #include <memory.h>    #include <vector>    #include <queue>    #include <stack>    #include <map>  #include <set>  #include <ctype.h>    #define INF 10000000#define ll long long#define min3(a,b,c) min(a,min(b,c))#define max3(a,b,c) max(a,max(b,c))#define MAXN 100010using namespace std;  int main(){int x1,y1,x2,y2;while(cin>>x1>>y1>>x2>>y2){if(x1==x2){int t=abs(y1-y2);cout<<x1+t<<" "<<y1<<" "<<x2+t<<" "<<y2<<endl;}else if(y1==y2){int t=abs(x1-x2);cout<<x1<<" "<<y1+t<<" "<<x2<<" "<<y2+t<<endl;}else{int t1=abs(x1-x2);int t2=abs(y1-y2);if(t1!=t2){cout<<"-1"<<endl;}else{int t;if(x1>x2){t=x2;x2=x1;x1=t;  t=y2;y2=y1;y1=t;}cout<<x1<<" "<<y2<<" "<<x2<<" "<<y1<<endl;}}}return 0;}


0 0
原创粉丝点击