The Himalayas --The 2014 ACM-ICPC Asia Mudanjiang Regional First Round - A

来源:互联网 发布:手机淘宝电脑版网页 编辑:程序博客网 时间:2024/05/18 04:47
Time Limit: 2 Seconds      Memory Limit: 65536 KB

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 Nheight 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

291 3 2 4 6 3 2 3 151 2 3 4 5

Sample Output

3

0

此题可以用很多种做法,最简单直接扫,还有线段树也可以,刚刚在浙大oj上参加的网络赛题目。

代码:

#include <iostream>#include <cstdio>#define MAXN 8850using namespace std;int main(){    int n, m;    int a[MAXN] = {0};    scanf("%d", &n);    for(int i = 0; i < n; i++)    {        int ans = 0;        scanf("%d", &m);        for(int j = 0; j< m; j++)        {            scanf("%d", &a[j]);        }        for(int k = 1; k < m - 1; k++)        {            if(a[k] > a[k-1] && a[k] > a[k+1])                ans++;        }        printf("%d\n", ans);    }    return 0;}

0 0
原创粉丝点击