#include <cstdio>
#include <iostream>
#include <stack>
#include <string.h>
using namespace std;
int ans[10000010]={0};
struct node{
int a,id;
};
stack<node> s;
int main()
{
node w,p;
//memset(ans,0,sizeof(ans));
int n,a,t=0,d=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
w.a=a;
w.id=i;
while(!s.empty())
{
p=s.top();
if(w.a>p.a)
{
ans[p.id]=i;
s.pop();
d++;
}
else break;
}
s.push(w);
t++;
}
for(int i=1;i<=n;i++)
printf("%d ",ans[i]);
return 0;
}
很神奇每一次TLE的点不一样,有时2个有时3个有时4个