80分求调
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;
int a[100010];
int k[100010];
signed main(){
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
sort(a + 1, a + 1 + n);
int l = 1, r = n;
while (l <= r){
memset(k, 0, sizeof(k));
int ans = 0;
int mid = (l + r) / 2;
for (int i = 2; i <= n; i++){
if (a[i] - a[i - 1] > 1)
ans++;
else k[ans]++;
}
for (int i = 0; i <= ans; i++)
k[i] += 1;
int minn = 0x3f3f3f3f;
for (int i = 0; i <= ans; i++)
minn = min(minn, k[i]);
if (minn > mid) l = mid + 1;
else r = mid - 1;
}
cout << l;
return 0;
}