代码如下:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, a[100005];
bool check(int x) {
int minl = 1e15, len = 1;
for(int i = 2; i <= n; ++i) {
if(a[i - 1] != a[i] - 1 || a[i - 1] == a[i]) {
minl = min(minl, len);
len = 1;
} else len++;
}
minl = min(minl, len);
return minl >= x;
}
int BinaryMax(int l, int r) {
while(l <= r) {
int mid = (l + r) >> 1;
if(check(mid) == true) l = mid + 1;
else r = mid - 1;
}
return r;
}
signed main() {
cin >> n;
for(int i = 1; i <= n; ++i) cin >> a[i];
sort(a + 1, a + n + 1);
cout << BinaryMax(0, n) << endl;
return 0;
}
记录: https://www.luogu.com.cn/record/112678378