#include <bits/stdc++.h>
using namespace std;
struct node {
  int first;
  int second;
} a[350030];
int cmp(node a, node b) {
  if (a.first == b.first) {
    return a.second < b.second;
  } else
    return a.first > b.first;
}
int main() {
  int n;
  while (~scanf("%d", &n)) {
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i].first);
      a[i].second = i;
    }
    sort(a + 1, a + 1 + n, cmp);
    int L, R;
    L = R = a[1].second;
    int ans = 1000000000 + 7;
    for (int i = 2; i <= n; i++) {
      ans = min(ans,
                a[i].first / max(abs(a[i].second - L), abs(a[i].second - R)));
      L = min(L, a[i].second);
      R = max(R, a[i].second);
    }
    printf("%d\n", ans);
  }
}
