三角形两边之和大于第三边,若较小两边相加大于第三边即成立。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    long long arr[110]={0};
    cin>>n;
    int zt=0;
    for(int i=0;i<n;i++)//输入
    {
        cin>>arr[i];
    }
    sort(arr+0,arr+n);//排序
    for(int i=0;i<n-2;i++)//根据三角形两边之和大于第三边,如果两条较小边相加大于第三边即成立
    {
        if(arr[i]+arr[i+1]>arr[i+2])
        {
            cout<<arr[i]<<" "<<arr[i+1]<<" "<<arr[i+2];
            zt=1;//状态置1
            break;
        }
    }
    if(zt==0)//未置1则无解
    {
        cout<<"No solution";
    }
}