zoukankan      html  css  js  c++  java
  • CodeForces

    Arpa is taking a geometry exam. Here is the last problem of the exam.

    You are given three points a, b, c.

    Find a point and an angle such that if we rotate the page around the point by the angle, the new position of a is the same as the old position of b, and the new position of b is the same as the old position of c.

    Arpa is doubting if the problem has a solution or not (i.e. if there exists a point and an angle satisfying the condition). Help Arpa determine if the question has a solution or not.

    Input

    The only line contains six integers ax, ay, bx, by, cx, cy(|ax|, |ay|, |bx|, |by|, |cx|, |cy| ≤ 109). It's guaranteed that the points are distinct.

    Output

    Print "Yes" if the problem has a solution, "No" otherwise.

    You can print each letter in any case (upper or lower).

    Examples

    Input

    0 1 1 1 1 0
    

    Output

    Yes
    

    Input

    1 1 0 0 1000 1000
    

    Output

    No
    

    Note

    In the first sample test, rotate the page around (0.5, 0.5) by .

    In the second sample test, you can't find any solution.

    题解:若三个点可以通过旋转使a到b,b到c,那只需要两个条件,共圆和弧长相等,共圆可以转换为AB和BC不在一条直线上,即AB,BC斜率不相等,弧长相等转换为弦相等,及AB之间的距离等于BC之间的距离

    代码:

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    
    using namespace std;
    
    int main() {
    
    	long  double ax,ay,bx,by,cx,cy;
    	cin>>ax>>ay>>bx>>by>>cx>>cy;
    	if((by-ay)/(bx-ax)!=(cy-by)/(cx-bx)&&(by-ay)*(by-ay)+(bx-ax)*(bx-ax)==(cy-by)*(cy-by)+(cx-bx)*(cx-bx)) {
    		printf("Yes
    ");
    	} else {
    		printf("No
    ");
    	}
    
    	return 0;
    }
  • 相关阅读:
    sequelize 批量添加和更新数据 bulkCreate
    js 线程和进程的关系
    mysql 索引 笔记1
    mysql 主键
    loj2292 「THUSC 2016」成绩单
    loj2291 「THUSC 2016」补退选
    cf984c Finite or not?
    cf984e Elevator
    loj2540 「PKUWC 2018」随机算法
    luoguT30204 偷上网
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10781903.html
Copyright © 2011-2022 走看看