某城市有一个火车站,铁轨铺设如图所示。有n节车厢从方向驶入车站,按进站顺序编号为1~n。你的任务是判断是否能让他们按照某种特定的顺序进入B方向的铁轨并驶出车站。例如出站顺序(5 4 1 2 3)是不可能的,但(5 4 3 2 1)是可能的。
为了重组车厢,你可以借助中转站C。这是一个可以停放任意多节车厢的车站,一旦从A移入C,就不能再回到A了;一旦从C移入B,就不能回到C了。换句话说,在任意时刻,只有两种选择:A->C和C->B。现在请你编写一个程序,对于输入指定进入B方向的铁轨并驶出车站的顺序,判断是否可行。
输入格式:
第一行为一个整数N(N<=1000) 第二行有N个整数,分别为指定的进入B方向铁轨并驶出车站的顺序。
输出格式:
对于每组数据,输出仅有一行,如果可以按指定的顺序驶出车站,则输出Yes,否则输出No。
输入样例:
在这里给出几组输入。例如:
5
5 4 1 2 3
5
1 2 3 4 5
结尾无空行
6
6 5 4 3 2 1
结尾无空行
输出样例:
在这里给出相应的输出。例如:
No
结尾无空行
Yes
结尾无空行
Yes
结尾无空行
#includeint a[2000],b[2000],stack[2000]; int main() { int i,j,n,top,k; while(scanf("%d",&n)!=EOF) { for(i=0;i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)