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;
}
|