问题 5234 --装卸问题

5234: 装卸问题

题目描述

有一天,有一个码头陆续运来了 n 只集装箱,到了第二天,这些集装箱会全部装船出海,i 号集装箱要上的轮船编号为 ai

小爱的任务是将这些箱子竖直叠放,分成若干堆,在符合要求的前提下,尽量减少堆叠的数量。要求如下:

  • 首先,不能让先到的箱子堆到后来的箱子的上方,箱子到港的顺序就是箱子的编号,1 号集装箱最先到港;
  • 其次,在装船的时候,每个箱子的上方应该没有装到其他船的箱子。船舶到港的顺序就是船舶的编号,1 号船最先到港。

请帮助小爱计算一下,为了满足装货的要求,至少需要将这些箱子堆成多少堆。

输入

第一行:单个正整数表示 n。 第二行:n 个正整数表示 a1,a2,,an

输出

单个正整数:表示最少需要多少堆箱子。

样例输入输出

输入#1 复制
5
5 4 3 2 1
输出#1 复制
1
输入#2 复制
6
5 4 4 3 1 2
输出#2 复制
2

提示

  • 对于 30 的数据,1n500
  • 对于 60 的数据,1n5000
  • 对于 100 的数据,1n100,000
  • 1ain

样例1说明:五只箱子可以堆在一起。 样例2说明:5 4 4 3 1一堆,2单独一堆,也存在其他最优方案

序号 标题 作者 发表时间 费用 订购数 操作