zoukankan      html  css  js  c++  java
  • codeforces 459 A. Pashmak and Garden 解题报告

    题目链接:http://codeforces.com/problemset/problem/459/A

    题目意思:给出两个点的坐标你,问能否判断是一个正方形,能则输出剩下两点的坐标,不能就输出 -1。

        这题更傻了,在考虑对角线的两点时,少考虑了一种情况:两个点分属不同象限:这时需要用到绝对值函数 abs !

        最近集训不知道是不是搞傻左,反正CF的题目打了几场,结果都很惨,有一点点恐惧感,怕跌回以前不堪的rating。唉~~~继续努力吧!!!

       

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 #include <cmath>
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     int x1, y1, x2, y2;
    11     while (scanf("%d%d%d%d", &x1, &y1, &x2, &y2) != EOF)
    12     {
    13         // 两点平行,绝对有解
    14         if (x1 == x2 && y1 != y2)   // x 坐标相同
    15         {
    16             if (x1 + (y1-y2) >= -1000 && x1 + (y1-y2) <= 1000)   // 这是为了严谨起见,可能会超出给定范围
    17                 printf("%d %d %d %d
    ", x1 + (y1-y2), y1, x2 + (y1-y2), y2);
    18             else
    19                 printf("%d %d %d %d
    ", x1 + (y2-y1), y1, x2 + (y2-y1), y2);
    20         }
    21         else if (y1 == y2 && x1 != x2)  // y 坐标相同
    22         {
    23             if ((x1-x2) + y1 >= -1000 && (x1-x2) + y1 <= 1000)
    24                 printf("%d %d %d %d
    ", x1, (x1-x2) + y1, x2, (x1-x2) + y2);
    25             else
    26                 printf("%d %d %d %d
    ", x1, (x2-x1) + y1, x2, (x2-x1) + y2);
    27         }
    28         // 对角线情况不一定有解
    29         else if (abs(x1 - x2) == abs(y1 - y2))  // 对角线
    30         {
    31             printf("%d %d %d %d
    ", x1, y2, x2, y1);
    32         }
    33         else
    34         {
    35             printf("-1
    ");
    36         }
    37     }
    38     return 0;
    39 }
    40             
  • 相关阅读:
    二分查找
    泛型 学习
    一个时间转换的功能的类
    TCP/IP、Http、Socket的区别
    值得学习的
    popupwindow使背景变暗
    设计模式最好的学习网站
    观察者模式
    数据报的使用
    网络编程server
  • 原文地址:https://www.cnblogs.com/windysai/p/3916040.html
Copyright © 2011-2022 走看看