#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> using namespace std; #define MAXN 100000+10 int n,st[MAXN],cnt,a[MAXN],kill[MAXN]={0},f[MAXN]={0}; int main() { int ans; int i; while(scanf("%d",&n)!=EOF) { memset(kill,0,sizeof(kill)); memset(f,0,sizeof(f));//f[i] 表示 [i,n]中i杀人的次数 cnt=0;ans=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=n;i>0;i--) { int t=0; while (cnt&&a[st[cnt]]<a[i]) { t++; f[i]=t=max(t,f[st[cnt]]); cnt--; } st[++cnt]=i; ans=max(ans,t); } printf("%d\n",ans); } return 0; }
时间: 2024-10-11 01:20:31