#31773: c++參考答案


kesoner666@gmail.com (楊虛於)

學校 : 高雄市立新興高級中學
編號 : 189616
來源 : [118.163.140.67]
最後登入時間 :
2025-06-27 17:39:56

#include <iostream>
#include <stack>
using namespace std;
int main() {
    int n;
    while (cin >> n) {
        if (n == 0)break;
        for (;;) {
            int num[1001],t=0;
            stack<int>stk;
            cin >> num[0];
            if (num[0] == 0) {
                cout << "\n";
                break;
            }
            for (int i = 1; i < n; i++)cin >> num[i];
            for (int i = 1; i <= n; i++) {
                stk.push(i);
                while (true) {
                    if (!stk.empty() && stk.top() == num[t]) {
                        t++;
                        stk.pop();
                    }
                    else break;
                }
            }
            if (stk.empty())cout << "Yes\n";
            else cout << "No\n";
        }
    }
}