[C_AR117-易] 山頭林立
問題描述 :
大雄想趁好天氣爬山健身,到達目的後發現這座山高低起伏,十分壯觀。由於大雄體力有限,所以想要知道這座山到底有機個山頭,因此藉由地圖中顯示的這座山的各個海拔高度,你可以幫助大雄算出共有幾個山頭嗎 ?
所謂山頭是指比前後兩個海拔都高的位置。例如輸入 4 23 12 45 25 中,第一個 4 表示有 4 個海拔高度,高度序列為 23 12 45 25 ,其中 45 就是一個山頭。
在計算山頭時,第一個海拔與最後一個海拔都不考慮。
輸入說明 :
每一個測試案例第一個數字 n 表示有 n 個海拔高度,接著輸入 n 個整數表示每個海拔高度。
輸出說明 :
第一列輸出山頭個數,接著每一列輸出每個海拔高度,若此海拔高度為山頭,則加上五個 > 符號。
範例 :
大雄想趁好天氣爬山健身,到達目的後發現這座山高低起伏,十分壯觀。由於大雄體力有限,所以想要知道這座山到底有機個山頭,因此藉由地圖中顯示的這座山的各個海拔高度,你可以幫助大雄算出共有幾個山頭嗎 ?
所謂山頭是指比前後兩個海拔都高的位置。例如輸入 4 23 12 45 25 中,第一個 4 表示有 4 個海拔高度,高度序列為 23 12 45 25 ,其中 45 就是一個山頭。
在計算山頭時,第一個海拔與最後一個海拔都不考慮。
輸入說明 :
每一個測試案例第一個數字 n 表示有 n 個海拔高度,接著輸入 n 個整數表示每個海拔高度。
輸出說明 :
第一列輸出山頭個數,接著每一列輸出每個海拔高度,若此海拔高度為山頭,則加上五個 > 符號。
範例 :
輸入範例 | 輸出範例 |
16 99 46 74 73 55 20 77 36 68 46 68 96 41 96 56 96 | 5 99 46 74>>>>> 73 55 20 77>>>>> 36 68>>>>> 46 68 96>>>>> 41 96>>>>> 56 96 |
- #include <iostream>
- using namespace std;
- int main() {
- // [C_AR117-易] 山頭林立
- int N;
- cin >> N;
- int m[N];
- for(int i = 0;i < N;i++)
- {
- cin >> m[i];
- }
- int count = 0;
- for(int i = 1;i < N-1;i++)
- {
- if(m[i]> m[i-1] && m[i]> m[i+1])
- {
- count++;
- }
- }
- cout << count << endl;
- cout << m[0] << endl;
- for(int i = 1;i < N-1;i++)
- {
- if(m[i]> m[i-1] && m[i]> m[i+1])
- {
- cout << m[i] << ">>>>>" << endl;
- }
- else
- {
- cout << m[i] << endl;
- }
- }
- cout << m[N-1] << endl;
- return 0;
- }
沒有留言:
張貼留言