码迷,mamicode.com
首页 > 其他好文 > 详细

YTUOJ-A Simple Question

时间:2015-04-09 13:49:07      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:c++   博客   编程   数据   

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;
}


运行结果:

技术分享

 

学习心得:

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

YTUOJ-A Simple Question

标签:c++   博客   编程   数据   

原文地址:http://blog.csdn.net/liuchang54/article/details/44958355

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!