e614 - 11936 - The Lazy Lumberjacks
題目描述
題目要求判斷給定的三條邊長是否能構成一個三角形。如果能構成,輸出 "OK",否則輸出 "Wrong!!"。
解題思路
三角形的判斷條件是:任意兩邊之和必須大於第三邊。因此,解題思路是先將三條邊長排序,然後判斷最大的邊長是否小於其他兩邊之和。如果滿足條件,則可以構成三角形,輸出 "OK",否則輸出 "Wrong!!"。
複雜度分析
- 時間複雜度: O(n log n),其中 n 是輸入的組數。因為每次輸入都需要進行排序,排序的時間複雜度是 O(log n)。
- 空間複雜度: O(1),因為只使用了固定大小的陣列來儲存三條邊長。
程式碼
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
cin.tie(0); ios::sync_with_stdio(false);
long long int a[3];
cin >> a[0];
while(cin >> a[0] >> a[1] >> a[2]){
sort(a,a+3);
(a[0]+a[1]>a[2])?cout << "OK\n":cout << "Wrong!!\n";
}
}