给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出-1。
#include<bits/stdc++.h> #define N 100010 using namespace std; int n,t,w,a[N],b[N]; int main() { scanf("%d",&n); b[0]=-1; for(int i=1;i<=n;i++) { scanf("%d",&b[i]); while(w&&b[a[w]]>=b[i])w--; a[++w]=i; printf("%d ",b[a[w-1]]); } return 0; }