rt
代码如下:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<cmath>
#include<queue>
#include<unordered_map>
using namespace std;
typedef long long ll;
const int N=1505;
const int M=1e6+5;
const int INF=1e9;
int MAX(int x,int y){return x>y?x:y;}
int MIN(int x,int y){return x<y?x:y;}
int ABS(int x){return x>0?x:-x;}
int GCD(int x,int y){return y?GCD(y,x%y):x;}
vector<int>q[M];
int n,a[M],ans;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
q[a[i]].push_back(i);
}
for(int i=n;i;i--){
if(q[a[i]].empty()) continue;
if(q[a[i]-1].empty()) continue;
while(!q[a[i]-1].empty()){
if(q[a[i]-1].back()>i) q[a[i]-1].pop_back();
else break;
}
if(q[a[i]-1].empty()) continue;
// printf("%d %d\n",q[a[i]].back(),q[a[i]-1].back());
ans++;
q[a[i]].pop_back();
q[a[i]-1].pop_back();
}
printf("%d",ans);
return 0;
}