Harmonious Contest |
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB |
Total submit users: 18, Accepted users: 18 |
Problem 10864 : No special judgement |
Problem description |
This is a magic country
Harmonious society And harmonious people
This is a wonderful contest Harmonious students And harmonious problems.
This is the most harmonious problem, and the question is as following: Given three positive integers A, B and C(0<A,B,C<=100) which denote the length of three edges, please tell me whether they can make up a legal triangle. |
Input |
The first line is an integer T(T<=100) which indicates the number of test cases.
Each test case consists of three integers A,B and C in a line. |
Output |
For each test case please output the type of triangle(Acute triangle、Right triangle or Obtuse triangle)if A,B and C can make up a legal triangle, and output "NO" otherwise. One line per case. |
Sample Input |
4 3 4 4 3 4 5 3 4 6 3 4 7 |
Sample Output |
Acute triangle Right triangle Obtuse triangle NO |
Problem Source |
2011ACM国际大学生程序设计竞赛湘潭邀请赛 |
题意:判断一个三角形是锐角钝角还是直角三角形。
思路:判断a^2+b^2与c^2的大小关系,a<c,b<c;
代码:
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a,b,c;
cin>>a>>b>>c;
int p[4];
p[1]=a,p[2]=b,p[3]=c;
int ab=a+b,ac=a+c,bc=b+c,ab1=abs(a-b),ac1=abs(a-c),bc1=abs(b-c);
if((ab>c)&&(ac>b)&&(bc>a)&&(ab1<c)&&(ac1<b)&&(bc1<a))
{
sort(p+1,p+4);
if((p[1]*p[1]+p[2]*p[2])>p[3]*p[3]) cout<<"Acute triangle"<<endl;
else if((p[1]*p[1]+p[2]*p[2])==p[3]*p[3]) cout<<"Right triangle"<<endl;
else cout<<"Obtuse triangle"<<endl;
}else cout<<"NO"<<endl;
}
return 0;
}