看了一圈发现用暴力的都没有高分的。。。
以下是我的代码,事先声明:
只是让直接暴力想满分的劝退
#include<bits/stdc++.h>
#define endl "\n"
#define IO ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
typedef long long ll;
using namespace std;
const ll maxn=1e6+10;
int a[maxn],t[maxn];
int n;
int main()
{
IO;
int f=maxn,e=-1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
int s=a[i];
f=min(f,a[i]);
e=max(e,a[i]);
//t[s]+=1;
}
sort(a+1,a+1+n);
int cnt=0,mn=maxn,ans=1;
for(int i=1;i<n;i++){
if(a[i+1]==a[i]){
ans++;
continue;
}
if(a[i+1]-a[i]==1){
//cout<<a[i]<<' ';
cnt++;
}
else{
mn=min(mn,cnt);
cnt=0;
ans++;
}
}
mn=min(mn,cnt);
/*if(n-(mn+1)==ans-1&&ans!=1) {
cout<<1;
return 0;
}*/
cout<<mn+1;
return 0;
}
非常奇怪的是,把27行的注释去掉后会直接超时,我也不知道什么原因
反正很猎奇就对了