#include #include #include using namespace std; int n, a[1001], dp[101][101]; void in() { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]); } int solve(int i, int j, int br) { if (i == j) return br * a[i]; if (dp[i][j] != -1) return dp[i][j]; return dp[i][j] = max(a[i] * br + solve(i + 1, j, br + 1), a[j] * br + solve(i, j - 1, br + 1)); } int main() { in(); memset(dp, -1, sizeof(dp)); printf("%d\n", solve(0, n - 1, 1)); return 0; }