测评地址:https://www.luogu.org/problemnew/show/CF6A
通过时间:2019.5.23
评测详情:https://www.luogu.org/recordnew/show/19297681
用时: 2500ms / 内存: 24KB
读入,排序,逐个判断。
利用三角形两边之和大于第三边
判断能否组成三角形
排序之后每种情况都列举一遍 我果然是蒟蒻呢
逐个判断时注意条件的优先级
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[5],b=0;//b用来标记相等的情况
cin>>a[0]>>a[1]>>a[2]>>a[3];
sort(a,a+4);
if(a[0]+a[1]>=a[2]){
if(a[0]+a[1]>a[2]){
cout<<"TRIANGLE";
return 0;}//注意提前结束,
//否则可能会输出多个答案
else b=1;
}
if(a[0]+a[2]>=a[3]){
if(a[0]+a[2]>a[3]){
cout<<"TRIANGLE";
return 0;}
else b=1;
}
if(a[1]+a[2]>=a[3]){
if(a[1]+a[2]>a[3]){
cout<<"TRIANGLE";
return 0;}
else b=1;
}
if(b==1) cout<<"SEGMENT";//如果不能组成三角形
//判断是否存在相等的情况
else cout<<"IMPOSSIBLE";
return 0;
}