抄本
题号:NC53316
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
Special Judge, 64bit IO Format: %lld

题目描述

研表究明,汉的字序顺并不定一能影阅响读。科学家们对数列进行了类似的研究。
给一个正整数数列,若数列首项为数列中所有数的最小值,末项为数列中的最大值,则我们称这是个正确的数列。例如,序列[1,3,2,4]和[1,2,1,2]是正确的,但序列[1,3,2]不是。
给出长度为n的序列a_2,。对于该序列的某个片段若该片段的首项为该片段中的最小值,末项为该片段中的最大值,则我们称这是个正确的片段。
对于给定的序列,请求出该序列至少需要被分成多少段,才能使得每个片段均为正确的片段。序列[2,3,1,1,5,1]可以分为三个正确的段:[2,3]和[1,1,5]和[1]。
需要编写一个程序,该程序按给定的顺序确定可以划分的最小正确段数。

输入描述:

输入的第一行包含一个整数 N 表示大小。

第二行包含n个整数表示序列中的元素

输出描述:

输出一个整数,表示按给定的顺序确定可以划分的最小正确段数。
示例1

输入

复制
5
5 4 3 2 1

输出

复制
5
示例2

输入

复制
4
1 3 2 4

输出

复制
1
示例3

输入

复制
6
2 3 1 1 5 1

输出

复制
3

备注:

对于的数据,n⩽500;
对于的数据,n⩽5000;
对于所有数据,

CC-BY-SA,感谢LOJ分享,译文来自  https://loj.ac/problem/2847