#include<bits/stdc++.h>
using namespace std;
int n,i,t,a[1000005],m[1000005],s[1000005];
int main(){for(cin>>n;i++<n;)cin>>a[i];
for(i=n;i;--i)m[i]=max(m[i+1],a[i]);
for(i=0;i++<n;)for(s[++t]=a[i];t&&s[t]>m[i+1];)
cout<<s[t--]<<" ";
}
比较简洁的代码

京公网安备 11010502036488号