⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1067.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 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 + -