题目描述
牛牛有一个数组长度大小为n,数组中有n个正整数。现在牛牛请你从其中选出三个元素(注意选择元素的下标不能相同,但是其值可以相同)组成一个三角形。
无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种
输入描述:
第一行是一个正整数n,(3≤n≤10^2)表示数组的元素个数。
接下来一行输入n个正整数ai,(1≤ai≤10^9)表示每个数组元素的值。
输出描述:
如无法做到,请输出一行一个字符串"No solution",反之请输出这三个元素的值。
如果有多种组成三角形的元素组合,你可以输出任意一种。
这道题可以说就是纯暴力,数据规模较小,可以直接套3个for循环就好了
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,i,j,k;
cin>>n;
ll a[n];
sort(a,a+n);
for(i=0;i<n;i++)
{
cin>>a[i];
}
ll flag=1;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
for(k=j;k<n;k++)
{
if(i!=j&&i!=k&&j!=k&&flag)
{
if(a[i]+a[j]>a[k]&&a[i]-a[j]<a[k]&&a[i]-a[k]<a[j]&&a[j]-a[k]<a[i])
{
flag=0;
cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<endl;
break;
}
}
}
}
}
if(flag)
{
cout<<"No solution"<<endl;
}
}