#P1378. 人数清点

人数清点

Description

饭时间到了,同学们到食堂的窗口前排好了队伍,排队时间太长了,张同学无聊之际想到了一个问题,如果要编一个程序,输入每个人的身高(从最后一个同学开始输入,一直到排在第 1 位的挨着打菜窗口的同学,按照这个顺序输入),计算出每个人的前面能看到几个人,应该如何解决呢?

请注意:一个同学能够看到的人是在他前面且身高严格低于他的人,并且他的视线会被在他前面第一个身高大于等于他的人挡住。也就是说无论如何也无法看到再前面的人。

Input Format

输入 N+1 行。

第一行一个正整数 N 表示同学的个数。

以下 N 行分别表示从后到前(窗口)同学的身高。

Output Format

一行一个整数,表示所有同学能看到的人的个数和。
6
10
3
7
4
12
2
5

Hint

【数据范围】

30% 的数据 1N100

100% 的数据 1N80000,第 i 个人的身高 ai 在 [1,109] 的范围内。

Source

STL 单调栈