#ZS0041. 向右看齐

向右看齐

题目描述

​登登让 nn 位学生 (1n105)(1\le n\le 10^{5}) 站成一排,第i位学生的身高是 hi(1hi106)h_i(1\le h_i\le 10^{6}) 。 现在全体学生向右看齐。对于第 ii 位学生来说,如果右边有人比他高,则会遮挡住这名同学的视野,每位同学都想知道谁挡着他了。

输入格式

输入一个整数 n(1n105)n(1\le n\le 10^{5}) 下一行输入n个整数表示学生身高 hi(1hi106)h_i(1\le h_i\le 10^{6})

输出格式

输出 nn 位整数,第 ii 位表示挡住第 ii 位视野的同学(输出下标就行,不用身高,第一个大于 ii 身高的下标)。之间用空格隔开。如果没有人挡住则输出 0 0(1in)(1\le i\le n)

输入样例

6
3 2 6 1 1 2

输出样例

3 3 0 6 6 0 

update: 新增了一组hack数据,卡掉了 O(n2)O(n^2) 的做法。