#4443. 车厢调度问题

车厢调度问题

题目描述:

有一个火车站,铁路如图所示。每辆火车从 A 驶入,再从 B 方向驶出,同时它的车厢可以重新组合。 假设从 A 方向驶来的火车有 $n$ 节($n \le 1000$),分别按照顺序编号为 $1,2,3,\dots,n$。 在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到 B 处的铁轨上。

另外假定车站 C 可以停放任意多节车厢。但是一旦进入车站 C,它就不能再回到 A 方向的铁轨上;并且一旦当它进入 B 方向的铁轨,它就不能再回到车站 C。 负责车厢调度的工作人员需要知道:能否使车厢按给定顺序 $a_1,a_2,\dots,a_n$ 从 B 方向驶出。请编程判断是否可以得到指定的车厢顺序。


输入格式:

第一行输入一个整数 $n$($1 \le n \le 1000$),表示有 $n$ 节车厢。 第二行输入 $n$ 个整数,表示指定的车厢顺序 $a_1,a_2,\dots,a_n$。


输出格式:

如果可以得到指定的车厢顺序,则输出字符串 YES;否则输出 NO。(注意要大写,不包含引号)


5
5 4 3 2 1
YES

5
3 1 2 5 4
NO