#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
using namespace std;
typedef long long ll;
ll n,a[100001],t=1,x,last=1,ans=1e7+7,sum=0;
struct node{
ll k;
ll s;
}book[100001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+1+n);
book[1].s=1;book[1].k=1;
for(int i=1;i<=n;i++){
if(a[i]!=a[i+1])book[++t].s=i+1,book[t].k=1;
else book[t].k++;
}t--;
// a:1 1 2 2 3
// book:k:2 2 1
// s:1 3 5
// t=3
for(int i=1;i<=n;i++){
if(x==t)break;
for(int j=1;j<=t;j++){
if(x==t)break;
if(a[book[j].s]+1==a[book[j+1].s]&&book[j].k>=1&&book[j+1].k>=1)sum++;
else {
ans=min(ans,sum+1);
sum=0;
}
book[j].k--;
if(book[j].k==0)x++;
}
//if(a[i]!=a[i+1]-1)ans=min(ans,i-last+1),last=i;
}
cout<<ans;
return 0;
}
应该是哪个地方出现了问题,但不让下载数据,自己随便测的也对,希望大佬看看