600. 仰视奶牛
作者:
梅
,
2021-03-22 23:32:03
,
所有人可见
,
阅读 432
原题链接
单调栈
C++代码
#include<iostream>
using namespace std;
const int N = 100010;
int n;
//s用来记录第i只牛需要仰视的对象
int a[N], q[N], tt = 0, s[N];
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for(int i = 1; i <= n; ++i){
while(tt && a[q[tt]] < a[i]){
// cout << q[tt] << "---" << endl;
s[q[tt]] = i;
tt--;
}
q[++tt] = i;
}
// for(int i = 1; i <= tt; ++i) cout << q[i] <<endl;
for(int i = 1; i <= n; ++i){
printf("%d\n", s[i]);
}
return 0;
}