#include<stdio.h>
int max(int a,int b) ;
void solve(int a[], int n) ;
int main()
{
int n ;
scanf("%d",&n ) ;
int a[n] ;
for(int i=0; i<n; i++)
scanf("%d",&a[i]) ;
solve(a,n) ;
return 0 ;
}
void solve(int a[], int n)
{
int ans = 0 ;//答案
//让i<j<k,这样棍子就不会被重复选了
for(int i=0; i<n; i++)
{
for(int j=i+1; j<n; j++)
{
for(int k=j+1; k<n; k++)
{
int len = a[i] + a[j] + a[k] ; //周长
int ma = max(a[i], max(a[j], a[k])) ;//最长棍子的长度
int rest = len - ma ; //其余两根棍子的长度之和
if(ma<rest)
//可以组成三角,如果可以更新答案则更新
ans = max(ans, len) ;
}
}
}
printf("%d", ans) ;
}
int max(int a,int b)
{
if(a>b)
return a ;
else
return b ;
}