📄 1067.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 1067 on 2005-03-23 at 13:26:40 */
#include <stdio.h>
int main()
{
int n, stack[1002], order, train[1002];
int i, top, flag, right;
while(scanf("%d", &n) == 1){
if(n == 0){
return 0;
}else{
while(1){
flag = 1;
for(i = 0; i < n; i++){
scanf("%d", &train[i]);
if(train[i] == 0){
flag = 0;
while(getchar() != '\n')
;
break;
}
}
if(flag == 0){
printf("\n");
break;
}else{
top = 0;
right = 1;
order = 0;
for(i = 0; i < n;){
if(order == n){
if(top != 0){
if(train[i] != stack[--top]){
right = 0;
break;
}
}
i++;
}else{
if(train[i] == order+1){
order++;
i++;
}else if(train[i] > order+1){
stack[top++] = order+1;
order++;
}else{
if(top == 0){
right = 0;
break;
}else{
if(train[i] != stack[top-1]){
right = 0;
break;
}else{
top--;
i++;
}
}
}
}
}
if(right){
printf("Yes\n");
}else{
printf("No\n");
}
}
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -