#include<iostream>
#include<set>
#include<bits/stdc++.h>
using namespace std;set<int>pos[50005];
int main(){
int n;
cin >> n;
int A[n+2];
A[0]=0;
set<int>view;
for(int i=1;i<=n;i++){
cin >> A[i];
view.insert(A[i]);
pos[A[i]].insert(i);
}
A[n+1]=0;
int sum=0;
for(int i=1;i<=n;i++){
if(A[i]!=0&&A[i-1]==0) sum++;
}
int temp=sum;
for(set<int>::iterator it=view.begin();it!=view.end();it++){
if(*it!=0){
for(set<int>::iterator p=pos[*it].begin();p!=pos[*it].end();p++){
A[*p]=0;
if(A[*p-1]>0&&A[*p+1]>0){temp+=1;}
else if(A[*p-1]==0&&A[*p+1]==0) {temp-=1;}
}
sum = max(sum,temp);}
}
cout << sum << endl;
return 0;
}
CCF CSP202109-2 非零段划分
最新推荐文章于 2024-08-02 18:20:17 发布