#include using namespace std; #define DB(x){if(DEBUG)cerr<<__LINE__<<" "<<#x<<" " <=(b);--i) #define ALL(x) (x).begin(),(x).end() templatevoid MAX(X&a,Y b){a=(a>=b?a:b);} templatevoid MIN(X&a,Y b){a=(a<=b?a:b);} typedef long long LL;typedef long double LD; int DEBUG=0,MULTI=0,GCJ=0; #define VV vector struct solver_t;solver_t *solver; struct solver_t { void solve() { int N ; cin >> N; VV A(N + 1); FOR (i, 1, N) cin >> A[i]; LL sum = 0; VV SUM(N + 1); LL res = 0; FOR (i, 1, N) { LL tmp = 0; FORD (j, i - 1, 1) { SUM[j] += A[j] * A[i]; tmp += SUM[j]; MAX( res, tmp ); } } DB(sum); cout << res << "\n"; } void gen() {} void brute() {} }; int main(int argc,char** argv){ FOR(i,1,argc-1)for(int j=0;argv[i][j];j++)if(argv[i][j]=='.')freopen(argv[i],"r",stdin); FOR(i,1,argc-1)if(argv[i]==string("q"))DEBUG=1<<30; FOR(i,1,argc-1)if(argv[i]==string("gen")){(solver=new solver_t())->gen();exit(0);} FOR(i,1,argc-1)if(argv[i]==string("brute")){(solver=new solver_t())->brute();exit(0);} ios::sync_with_stdio(false),cin.tie(0); cout.setf(ios::fixed),cout.precision(10);int t;if(MULTI||GCJ)cin>>t;else t=1; FOR(i,1,t){if(DEBUG)cerr<<__LINE__<<" "<solve(); }return 0; }