//ios比scanf和printf慢很多!!!
#include <iostream>
using namespace std;
const int N = 100010;
int n;
int stk[N], tt;//用数组模拟栈
int main() {
cin >> n;
for(int i = 0; i < n; i++) {
int x;
cin >> x;
while(tt && stk[tt] >= x)tt--;//如果栈顶元素比当前元素大,直接弹出
if(tt) cout << stk[tt] <<‘ ‘;//此时的栈顶元素就是目标元素
else cout << -1 << ‘ ‘;//左边没有小于当前值的元素
stk[ ++ tt] = x;//将当前元素入栈
}
return 0;
}
原文:https://www.cnblogs.com/huhu555/p/14657154.html