#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--]<<" "; }
比较简洁的代码