问题 3930 --对称波峰(peak.cpp)

3930: 对称波峰(peak.cpp)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 35  解决: 23
[提交][状态][命题人:]

题目描述


#include<bits/stdc++.h>
using namespace std;
int a[105], n, step, flag, num;
bool judge(int step, int flag)
{
	if(_____(1)______)
	return true;
	else
	return false;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
	flag=0,step=0,num=0;
	for(int i=____(2)_____;i<=n;i++)    
	{
		if(a[i]>a[i-1])
		{
			if(judge(step,flag)) num++;
			if(flag==-1||flag==0) step=______(3)_____;
			else step++;
			flag=1;
		}
		else if(a[i]==a[i-1])
		{
			if(judge(step,flag)) num++;
			flag=0,step=0;
		}
		else
		{
			_____(4)______
			step--;
		}
	}
	if(____(5)_____) num++;
	cout<<num<<endl;
    return 0;
}


输入

输入文件为peak.in

第一行为n,表示数组中元素的个数。第二行为n个非负整数,表示数组中的元素。

输出

输出文件为peak.out

输出仅一行,一个整数,表示对称波峰的个数

样例输入
Copy
18
2 5 6 3 2 2 3 2 1 6 8 10 9 7 6 8 9 3
样例输出
Copy
2

提示

来源

[提交][状态]