#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int n;
cin>>n;
set<int>tp;
map<int,int>cnts;
for(int i=0;i<n;i++){
int t;
cin>>t;
cnts[t]++;
tp.insert(t);
}
int cnt=0;
while(!tp.empty()){
deque<int>op;
set<int>::iterator it;
it=tp.begin();
op.push_back(*it);
int le=*it;
it++;
for(;it!=tp.end();++it){
if(*it-le!=1){
break;
}
le=*it;
op.push_back(*it);
}
int _min=1e9+10;
for(int i=0;i<op.size();i++){
_min=min(_min,cnts[op[i]]);
}
for(int i=0;i<op.size();i++){
cnts[op[i]]-=_min;
if(cnts[op[i]]==0){
tp.erase(op[i]);
}
}
cnt+=_min;
}
cout<<cnt;
}
非常简单的小题,这么做其实有亿点繁琐了

京公网安备 11010502036488号