CF888A题解

发布时间 2023-10-26 09:41:30作者: Kazdale
  • 分析

    因为一个数不可能同时大于并小于它两边的数,所以两种数的集合不存在交集。
    所以分别扫一遍两种数的个数加在一起即可。

  • 代码

#include <iostream>
using namespace std;
constexpr int MAXN(1000007);
int a[MAXN];
int n, ans;
inline void read(int &temp) { cin >> temp; }
int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	read(n);
	for (int i(1); i <= n; ++i)  read(a[i]);
	for (int i(2); i < n; ++i)  ans += (a[i] > a[i - 1] && a[i] > a[i + 1]);
	for (int i(2); i < n; ++i)  ans += (a[i] < a[i - 1] && a[i] < a[i + 1]);
	cout << ans << endl; 
	return 0;
}