P5788 【模板】单调栈```cpp
#include
#include
#include
using namespace std;
const int MAXN=3000005;
int n,a[MAXN],ans[MAXN];//a;输入,ans:记录答案
stackfu;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=n;i>=1;i--)
{
while(a[i]>=a[fu.top()] && !fu.empty())fu.pop();
if(!fu.empty())ans[i]=fu.top();
else ans[i]=0;
fu.push(i);
cout<<"1";
}
for(int i=1;i<=n;i++)cout<<ans[i]<<" ";
return 0;
}