OpenJudge

B02T03:进栈出栈2

总时间限制:
1000ms
内存限制:
65536kB
描述

1~N范围内的所有自然数按照从小到大的顺序(1,2,...,N)依次等待进栈。

比如现在N=3:

我们知道有些出栈顺序是合法的,例如{3,2,1}/{1,2,3}等

而有些出栈顺序是不可能出现(非法)的,例如{3,1,2}

现在给出1组出栈顺序,请你判断其是否合法。

输入
第1行包含1个整数N(1 <= N <= 20),代表元素个数。
第2行包含N的整数,代表出栈顺序,空格隔开。
输出
如果非法,输出“No”;
如果合法,输出“Yes”,以及在整个入栈/出栈过程中,栈的最大size,空格隔开。
样例输入
样例1:
4
2 4 3 1

样例2:
4
2 4 1 3
样例输出
样例1:
Yes 3
*合法,过程中{1,3,4}同时在栈中时size达到最大

样例2:
No
提示
*s.size()可以返回当前栈中的元素个数
全局题号
15719
添加于
2017-08-01
提交次数
12
尝试人数
8
通过人数
7