C - Triangles
题意:找一个数能够满足在给定的n个数里面随便找两个数构成三角形。
&:找到临界值,也就是两边之差最大的和两边之和最小的。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[200005];
int main()
{
ll n;
while(scanf("%lld", &n) != EOF)
{
for(int i = 0; i < n; i ++)
{
scanf("%lld", &a[i]);
}
sort(a,a+n);
ll Min = a[n - 1] - a[0];
ll Max = a[0] + a[1];
if(Max <= Min + 1) printf("NO\n");
else printf("YES\n%lld\n",Min+ 1);
}
return 0;
}