迴圈

輸入

尋找山地或高原的可能點

若是山地(相對極大)

則ans+1

若不是

則往後找,看看是否真是高原

則ans+1

但要注意邊界

輸出ans

 

PS:

因為即使是高原,最左邊的點也得高於前一個

 

 

所以對於前一個數字,不用考慮等號

 

 

 

#include <iostream>

#define N 10010
using namespace std;

int main()
{
    int n;
    int mountain[N];
    int ans;

    while(cin >> n)
    {
        for(int i = 0; i<n; i++)
            cin >> mountain[i];

        ans = 0;
        for(int i = 1; i<n-1; i++)
            if(mountain[i] > mountain[i-1] && mountain[i] >= mountain[i+1])
            {
                if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1])
                    ans++;
                else
                {
                    while(mountain[i] == mountain[i+1] && i<n)i++;

                    if(mountain[i] > mountain[i+1] && i < n-1)
                        ans++;
                }
            }

        cout << ans << endl;
    }

    return 0;

}
 

arrow
arrow
    全站熱搜

    大神(偽) 發表在 痞客邦 留言(0) 人氣()