#include <bits/stdc++.h>
template <class T>
bool uin(T &a, T b) {
  return a > b ? (a = b, true) : false;
}
template <class T>
bool uax(T &a, T b) {
  return a < b ? (a = b, true) : false;
}
using namespace std;
const int maxn = 300005;
vector<int> a;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n;
  cin >> n;
  int k = 1000000000 + 10;
  a.reserve(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  sort((a).begin(), (a).end());
  for (int i = 1; i < n; i++) {
    uin(k, min(a[i], a[0]) / abs(0 - i));
  }
  for (int i = 0; i < n - 1; i++) {
    uin(k, min(a[i], a[n - 1]) / abs(n - 1 - i));
  }
  cout << k << endl;
  return 0;
}
