题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5341
As an artist, Bob usually need to travel around the world. He made a lot of sketch of scenery on his journey. A famous spot he have visited recently is the Himalayas. The Himalayas is a mountain range in South Asia separating the plains of the Indian subcontinent from the Qinghai-Tibet Plateau. The Himalayas include over a hundred mountains exceeding 7,200 meters in elevation.
One day, Bob came up with an strange idea. He wanted to know the number of mountain peaks in his paintings. As his best friend, he turned to you for help. You are given a list of N height sampling values Hi. You should determine how many peaks are there. For all i which satisfies 2 <= i <= N - 1, Hi is defined as a peak if and only if Hi-1 < Hi > Hi+1.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
The first line contains one integer N (1 <= N <= 50). The next line contains N integers Hi (1 <= Hi <= 8844). It is guaranteed that any two adjacent height sampling values will be different.
Output
For each test case, output the number of peaks.
Sample Input
2 9 1 3 2 4 6 3 2 3 1 5 1 2 3 4 5
Sample Output
3 0
Author: JIANG, Kai
Source: The 2014 ACM-ICPC Asia Mudanjiang Regional First Round
代码:
#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <cctype>
#include <cmath>
#include <stack>
#include <queue>
#include <list>
#include <map>
#include <set>
using namespace std;
#define min2(x, y) min(x, y)
#define max2(x, y) max(x, y)
#define min3(x, y, z) min(x, min(y, z))
#define max3(x, y, z) max3(x, max(y, z))
#define clr(x, y) memset(x, y, sizeof(x))
#define fr(i,n) for(int i = 1; i <= n; i++)
#define upfr(i,j,n) for(int i = j; i <= n; i++)
#define dowfr(i,j,n) for(int i = n; i >= j; i--)
#define scf(n) scanf("%d", &n)
#define ptf(n) printf("%d",n)
#define ptfs(s) printf("%s",s)
#define ptln() printf("\n")
#define srt(a,n) sort(a,n)
#define LL long long
#define pi acos(-1.0)
#define inf 1 << 31-1
#define eps 0.00001
#define maxn 55
int arr[maxn];
int main()
{
//freopen("D:\\ACM Contest\\2014 ACM\\The 2014 ACM-ICPC Asia Mudanjiang Regional First Round\\in.txt","r",stdin);
int t;
scf(t);
while(t--)
{
clr(arr,0);
int n;
scf(n);
fr(i,n)
scf(arr[i]);
int ans = 0;
fr(i,n-1)
{
if(i == 1)
continue;
if(arr[i] > arr[i-1] && arr[i] > arr[i+1])
ans++;
}
printf("%d\n",ans);
}
return 0;
}