# c199: 爬山去 ## 題目: 阿華很喜歡爬山,在爬山的過程中都會攜帶高度計,該高度計每一分鐘會記錄一次,有一次阿華到郊外爬爬小山坡,到處走走,記錄了很多高度,回家之後想計算自己到底爬了幾座小山頭。現在阿華將高度計記錄的數字給你,請你計算阿華爬了幾座小山頭。 所謂小山頭是指該高度比前一個和後一個都高,第一個與最後一個高度不考慮其為小山頭。 例如: 1 2 3 4 2 4 為只有一個山頭4。但是有時會遇到高原,仍然算是一個山頭。 1 2 3 4 4 3 2 1,此時也是只有一個山頭 4 4。 1 1 2 2 3 3,算沒有山頭 1 2 3 3 2 2 3 3 3,算一個山頭 3 3 ## 測資說明: 輸入一個整數n,及n 個海拔高度,整數之間有一空白。 輸出阿華爬了幾個小山頭。 ## C++ Code: ```cpp=1 #include <iostream> #include <vector> using namespace std; int main() { int n = 0, tmp = 0, total = 0, size = 0; vector<int> v_hill; cin >> n; cin >> tmp; v_hill.push_back(tmp); for (int i = 1; i < n; i++) { cin >> tmp; if (tmp == v_hill.back()) { continue; } else { v_hill.push_back(tmp); } } size = v_hill.size(); for (int i = 1; i < size - 1; i++) { if (v_hill[i] > v_hill[i - 1] and v_hill[i] > v_hill[i + 1]) { total++; } } cout << total; return 0; } ``` --- - [Zerojudge題目連結](https://zerojudge.tw/ShowProblem?problemid=c199) ###### tags: `APCS` `C++`