2017年12月30日 星期六

[C_AR117-易] 山頭林立(C++)

[C_AR117-易] 山頭林立

問題描述 :
大雄想趁好天氣爬山健身,到達目的後發現這座山高低起伏,十分壯觀。由於大雄體力有限,所以想要知道這座山到底有機個山頭,因此藉由地圖中顯示的這座山的各個海拔高度,你可以幫助大雄算出共有幾個山頭嗎 ?
所謂山頭是指比前後兩個海拔都高的位置。例如輸入 4 23 12 45 25 中,第一個 4 表示有 4 個海拔高度,高度序列為 23 12 45 25 ,其中 45 就是一個山頭。
在計算山頭時,第一個海拔與最後一個海拔都不考慮。
輸入說明 :
每一個測試案例第一個數字 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



  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_AR117-易] 山頭林立  
  6.     int N;  
  7.     cin >> N;  
  8.     int m[N];  
  9.     for(int i = 0;i < N;i++)  
  10.     {  
  11.         cin >> m[i];  
  12.     }  
  13.     int  count = 0;  
  14.     for(int i = 1;i < N-1;i++)  
  15.     {  
  16.         if(m[i]> m[i-1] && m[i]> m[i+1])  
  17.         {  
  18.             count++;  
  19.         }  
  20.     }  
  21.     cout << count << endl;  
  22.     cout << m[0] << endl;  
  23.     for(int i = 1;i < N-1;i++)  
  24.     {  
  25.         if(m[i]> m[i-1] && m[i]> m[i+1])  
  26.         {  
  27.             cout << m[i] << ">>>>>" << endl;  
  28.         }  
  29.         else  
  30.         {  
  31.             cout << m[i] << endl;  
  32.         }  
  33.           
  34.     }  
  35.     cout << m[N-1] << endl;  
  36.     return 0;  
  37. }  

沒有留言:

張貼留言