p1363.cpp

来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 31 行

CPP
31
字号
#include <iostream>
#include <stack>
using namespace std;
stack <int> s;
int main(){
    int n,m,x;
    while(cin >> n && n){
        while(1){
            while(!s.empty()) s.pop();
            int k = 1;
            bool flag = true;
            scanf("%d",&x);
            if(x == 0) break;
            while(k <= x) s.push(k++);
            if(x != s.top()) flag = false;
            else s.pop();
            for(int i = 1;i < n;++i){
                scanf("%d",&x);
                if(flag){
                    while(k <= x) s.push(k++);
                    if(x != s.top()) flag = false;
                    else s.pop();
                }
            }
            if(flag) puts("Yes");
            else puts("No");
        }
        puts("");
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?