Codeforces-6A Triangle

mac2022-06-30  22

Codeforces-6A Triangle

题目链接:Codeforces-6A Triangle 题目大意:给你四个数 让你判断最好的情况能构成非退化三角形(普通三角形)还是退化三角形(三个顶点在一条直线上)还是无法构成三角形

解题思路:蛮解就好了

代码块:

#include<iostream> #include<algorithm> using namespace std; typedef long long ll; ll arr[4]; ll pan[3]; void dfs(int x, int sum); int bs = 0; int main() { for(int i = 0; i < 4; i++){ cin>>arr[i]; } dfs(0,1); dfs(1,1); if(bs == 2)cout<<"TRIANGLE"; if(bs == 1)cout<<"SEGMENT"; if(bs == 0)cout<<"IMPOSSIBLE"; return 0; } void dfs(int x, int sum){ if(sum == 3){ ll panF[3]; panF[2] = arr[x]; for(int i = 0; i < 2; i++){ panF[i] = pan[i]; } sort(panF, panF+3); if(panF[0]+panF[1] > panF[2]){ bs = max(bs,2); }else if( panF[0] + panF[1] == panF[2]){ bs = max(bs,1); } }else if(sum == 2){ pan[1] = arr[x]; for(int i = x+1; i < 4; i++){ dfs(i,sum+1); } }else{ pan[0] = arr[x]; for(int i = x+1; i < 4; i++){ dfs(i,sum+1); } } }
最新回复(0)