Uva514-Rail::解題過程

UVa514-Rail 的解題過程。


Writeup


點我看題目!

其實這題就是在考Stack,然後模擬Stack的運作,直接上AC Code!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <bits/stdc++.h>


int main() {
    int T;

    while (std::scanf("%d", &T) && (T && T)) { // 當輸入為0時跳出
        int train[T];
        while (std::scanf("%d", &train[0]) && (train[0] && train[0])) {
            for (int i = 1; i < T; i++) {
                std::scanf("%d", &train[i]);
            }
            std::vector<int> st; // 模擬一個Stack
            int idx = 0;
            for (int i = 1; i <= T; i++) { // 依照1~n的順序push進stack
                st.push_back(i);
                while (st.size() && st.back() == train[idx]) {
                    idx++;
                    st.pop_back();
                }
            }

            printf("%s\n", st.size() ? "No" : "Yes"); // 如果結束後Stack內還有東西代表這串輸入不合格
        }
    }
    return 0;
}
Built with Hugo
Theme Stack designed by Jimmy