Codeforces Gym100971 C.Triangles-组三角形 (IX Samara Regional Intercollegiate Programming Contest Russia, Samara, March 13)
这个题就是组三角形,从给出的数组里任选两个和未知的边组三角形。
任意两边之和大于第三边,记住这个就可以了。
代码:
1 #include<cstdio>
2 #include<cstring>
3 #include<iostream>
4 #include<cmath>
5 #include<algorithm>
6 using namespace std;
7 const int N=1e6+10;
8 int a[N];
9 int main(){
10 int n;
11 while(~scanf("%d",&n)){
12 for(int i=0;i<n;i++)
13 scanf("%d",&a[i]);
14 sort(a,a+n);
15 if(n==2){
16 printf("YES\n");
17 printf("%d\n",a[1]-a[0]+1);
18 }
19 else{
20 int cnt=a[0]+a[1]-1;
21 if(cnt<a[n-1]){
22 if(cnt+a[0]>a[n-1]){
23 printf("YES\n");
24 printf("%d\n",cnt);
25 }
26 else printf("NO\n");
27 }
28 else{
29 if(a[0]+a[n-1]>cnt){
30 printf("YES\n");
31 printf("%d\n",cnt);
32 }
33 else printf("NO\n");
34 }
35 }
36 }
37 return 0;
38 }