1438. 小鱼比身高(单调栈模板)

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个「比身高」比赛,比的是每只鱼的身高。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的身高,很显然整数越大,表示这只鱼越高... 好了编不下去了。

// 以上都是废话。

nn 条鱼从左到右排成一排,每条鱼有一个高度 hih_i

设左数第 ii 条鱼与「它左边第一条高度 hi\geq h_i 」的鱼之间有 cic_i 条鱼(对于 iji ≠ j,第 ii 条鱼和第 jj 条鱼之间有 ji1|j-i|-1 条鱼)。

如果这条鱼左边所有的鱼都比他矮或者他的左边没有鱼,ci=i1c_i=i-1

计算 cic_i 的值。

// 鱼还比身高就离谱... 至少也应该是比长度吧...

输入

第一行一个整数 n (1n105)n \ (1 ≤ n ≤ 10^5)

接下来 nn 个整数 h1,h2,...,hn (1hi109)h_1,h_2,...,h_n \ (1 ≤ h_i ≤ 10^9)

输出

输出 nn 行,每行输出一个整数,第 ii 行输出 cic_i 的值。

样例

标准输入 复制文本
12
1 1 4 5 1 4 1 1 4 5 1 4
标准输出 复制文本
0
0
2
3
0
1
0
0
2
5
0
1
登录以提交代码。
单点时限 2 秒
内存限制 1024 MB
提交 146
通过 84