#include <bits/stdc++.h>
using namespace std;
long long n, m, a, b, c, k, temp, x, y;
const int MAXN = 1e5 + 11;
inline long long max(long long a, long long b) { return ((a > b) ? a : b); }
inline long long min(long long a, long long b) { return ((a > b) ? b : a); }
inline long long gcd(long long a, long long b) {
  if (b == 0) return a;
  a %= b;
  return gcd(b, a);
}
inline vector<long long> read(int n) {
  vector<long long> v(n);
  for (int i = 0; i < v.size(); i++) cin >> v[i];
  return v;
}
long long dp[100][801];
void sol() {
  for (int j = 0; j <= 80; j++)
    for (int i = 0; i <= 800; i++) dp[j][i] = -1e18;
  dp[0][0] = 1000;
  cin >> n;
  int a[n];
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n - 1; i++) {
    for (int st = 0; st <= 800; st++) {
      if (dp[i][st] >= 0) {
        for (int nst = st + 1; (nst - st) * a[i] <= dp[i][st]; nst++)
          dp[i + 1][nst] = max(dp[i][st] - (nst - st) * a[i], dp[i + 1][nst]);
        dp[i + 1][st] = max(dp[i][st], dp[i + 1][st]);
        for (int nst = st - 1; nst >= 0; nst--)
          dp[i + 1][nst] = max(dp[i + 1][nst], dp[i][st] + (st - nst) * a[i]);
      }
    }
  }
  long long ans = 0;
  for (int st = 0; st <= 800; st++) {
    ans = max(ans, st * a[n - 1] + dp[n - 1][st]);
  }
  cout << ans;
  return;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int test = 1;
  for (int i = 1; i <= test; i++) sol();
}
