#include<bits/stdc++.h>
using namespace std;
stack<int> sta;
const int N=3e6+10;
int n;
int num[N];
int f[N];
int main()
{
cin >> n;
for(int i=1;i<=n;i++)
{
cin >> num[i];
}
for(int i=1;i<=n;i++)
{
while((num[i] > num[sta.top()]) && (!sta.empty()))
{
f[sta.top()]=i;
sta.pop();
}
sta.push(i);
}
for(int i=1;i<=n;i++)
{
cout << f[i] << " ";
}
return 0;
}
这样写问题出在哪里捏?
为啥会一直卡循环里
求助