感觉我的代码和几个题解都不太一样,但是还是过了,就想着发过来问一下:
#include<bits/stdc++.h>
using namespace std;
int a[3000010];
int st[3000010];
int b[3000010],l=0;
int v[3000010];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=n;i>0;i--){
while(a[i]>=st[l] && l>0){
l--;
}
if(l==0){
b[i]=0;
}
b[i]=v[l];
st[++l]=a[i];
v[l]=i;
}
for(int i=1;i<=n;i++){
cout<<b[i]<<' ';
}
cout<<'\n';
return 0;
}