我的代码
#include <iostream>
#include <stack>
using namespace std;
int n;
stack <int>s;
int a[10001],f[1001],ans=0;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(s.empty()||s.top()>=a[i]){
f[i]=s.top();
}else{
while(!s.empty()||s.top()<=a[i]){
//cout<<"Pop out "<<s.top()<<" \n";
s.pop();
f[i]=s.top();
}
s.push(a[i]);
}
// cout<<"f[i]="<<f[i]<<endl;
// cout<<"Did a while\n";
}
for(int i=n;i>=1;i--){
cout<<f[i]<<" ";
}
return 0;
}
/*
6
3
2
6
1
1
2
*/
请问为什么程序会运行终止?