YTUOJ-A Simple Question

Description

今天,pasher打算在一个浪漫的花园和他的搭档们聚餐,但是不幸的是,pasher忘记了花园的地点,他只记得这个花园看上去像个平行于坐标轴的正方形,他还记得花园的每个顶点上都有一棵大数。现在,pasher知道其中两棵树的坐标,且这两棵树在对角线上,你能帮他找出另外两棵树的坐标吗?

Input

多组输入,直到文件末。每组输入包含一行,第一行包含四个整数,x1,y1,x2,y2,代表pasher知道的两棵树的坐标,(-100<=x1,y1,x2,y2<=100),其中x1,y1代表第一棵树,x2,y2代表第二棵树。

Output

如果没有解则输出-1。否则输出另外两棵树的坐标x3,y3,x4,y4,按x递增的顺序输出.

Sample Input

0 0 1 1

Sample Output

0 1 1 0

HINT

代码如下:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int x1,y1,x2,y2;
    int x3,y3,x4,y4;
    while (cin>>x1>>y1>>x2>>y2)
    {
        if (fabs(x1-x2)==fabs(y1-y2)&&(x1!=x2)&&(y1!=y2))
        {
            if (x1<x2)
            {
                x3=x1;
                x4=x2;
                y3=y2;
                y4=y1;
            }
            else
            {
                x3=x2;
                x4=x1;
                y3=y1;
                y4=y2;
            }
            cout<<x3<<" "<<y3<<" "<<x4<<" "<<y4<<endl;
        }
        else
            cout<<"-1"<<endl;
    }

    return 0;
}


运行结果:

 

学习心得:

题目的确很简单。我却想复杂了,担心如果对角线的横或者纵坐标一致的时候(即正方形在空间直角坐标系呈菱形的时候)怎么办,好在找到了求另外两点的方法,这里就不分享了。。。今天抱着试一下的态度先来个简单的,就当它的边平行于坐标轴(题目上有提到,但是我不确定)来先测试一下,结果果然是这样,,,我这总是把问题想复杂的脑袋里面得好好整理整理了,平时涉猎的太多,但是又不精通,,,以至于经常产生这种情况。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值