#include<bits/stdc++.h>
using namespace std;
int i,j,s,ans,n=0,x[200010],y[200010];
stack<int>a;
int main(){
scanf("%d",bitand n);
for(i=1;i<=n;i++) scanf("%d",bitand x[i]);
for(i=1;i<=n;i++){
while(x[a.top()]>=x[i]&&a.size()) a.pop();
if(a.empty()) y[i]=0;
else y[i]=x[a.top()];
a.push(i);
}
for(i=1;i<=n;i++) printf("%d ",y[i]);
return 0;
}
球球打捞们解释一下:while(x[a.top()]>=x[i]&&a.size()) 为什么会报错(小菜刚学单调),而 while(a.size()&&x[a.top()]>=x[i])不会qwq
求求了T=T