2015-2016 ACM-ICPC Triangle

题目地址:http://codeforces.com/gym/100819/attachments

题目:

Determine if it is possible to produce two triangles of given side lengths, by cutting some rectanglewith a single line segment, and freely rotating and flipping the resulting pieces.

Input

The input consists of two lines. The first line contains three space-separated positive integers,indicating the desired side lengths of the first triangle. Similarly, the second line contains threespace-separated positive integers, denoting the desired side lengths of the second triangle. It isguaranteed that the side lengths produce valid triangles. All side lengths are less than or equal to100.

Output

Print, on a single line, whether there exists a rectangle which could have been cut to form trianglesof the given side lengths. If such a rectangle exists, print YES. Otherwise, print NO.


思路:

两个三角形,先判断是否全等,SSS,再判断是不是直角三角形。

代码:

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
    return a<b;
}
int main()
{
    int a[3],b[3];
    while(cin>>a[0]>>a[1]>>a[2]>>b[0]>>b[1]>>b[2])
    {
        sort(a,a+3,cmp);
        sort(b,b+3,cmp);
        int i,k=0;
        for(i=0;i<3;i++)
        {
            if(a[i]!=b[i]){k=1;break;}
        }
        if(k==1)cout<<"NO"<<endl;
        else
        {
            if(a[0]*a[0]+a[1]*a[1]!=a[2]*a[2])cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zero_979/article/details/80739134