有n根棍子。棍子i的长度为ai,想要从中选择3根棍子组成周长尽可能长的三角形。请输出最长的周长。若无法组成三角形则输出0;
#include<iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; int main() { int n,sum,max1,max2; int a[110]; while(cin>>n) { int ans=0; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) { for(int j=i+1;j<n;j++) { for(int k=j+1;k<n;k++) { sum=a[i]+a[j]+a[k]; max1=max(a[i],a[j]); max2=max(max1,a[k]); if(sum-max2>max2) { if(ans<sum) ans=sum; } } } } if(ans>0) printf("%d\n",ans); else printf("0\n"); } return 0; }
时间: 2024-10-12 02:51:56