5153: 【单调栈】Bilibili2021秋招-大鱼吃小鱼

金币值:1 时间限制:6.000 s 内存限制:128 M
正确:49 提交:79 正确率:62.03% 命题人:
点赞量:0 收藏量:1 题目类型:程序 知识点: 单调栈 Bilibili

题目描述

小明最近喜欢上了俄罗斯套娃、大鱼吃小鱼这些大的包住小的类型的游戏。 

于是小明爸爸给小明做了一个特别版的大鱼吃小鱼游戏,他希望通过这个游戏能够近一步提高牛牛的智商。 

游戏规则如下: 现在有N条鱼,每条鱼的体积为Ai,从左到右排成一排。

A数组是一个排列。 小明每轮可以执行一次大鱼吃小鱼的操作。

一次大鱼吃小鱼的操作:对于每条鱼,它在每一次操作时会吃掉右边比自己小的第一条鱼。 值得注意的是,在一次操作中,每条鱼吃比自己小的鱼的时候是同时发生的。 

举一个例子,假设现在有三条鱼,体积为分别[5,4,3],5吃4,4吃3,一次操作后就剩下[5]一条鱼。 

爸爸问小明,你知道要多少次操作,鱼的数量就不会变了嘛?

输入格式

第一行输入长度N 

第二行输入A数组,数字之间用空格隔开 

1<=N<=10^5,1<=Ai<=N

输出格式

一个正整数, 表示要多少次操作,鱼的数量就不会变了。

输入样例    复制

6
4 3 2 3 2 1

输出样例    复制

2

提示

[4,3,2,3,2,1]-->[4,3]-->[4]