数据有点水了,我这样的暴力都能A
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,Max;
long long a[N],Min,e[N];
map<long long,int> t;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=n;i>=1;i--) e[i]=max(e[i+1],a[i]);
for(int i=n;i>=1;i--){
Min=a[i];
t[a[i]]++;
for(int j=i-1;j>=1;j--){
if(a[j]>=a[i]) break;
Min=min(Min,a[j]);
if(!t[a[j]]&&Min==a[j]) Max=max(Max,i-j+1);
t[a[j]]++;
}
t[a[i]]--;
for(int j=i-1;j>=1;j--){
if(a[j]>=a[i]) break;
t[a[j]]--;
}
}
cout<<Max;
return 0;
}