公式

A - Maximal Value 解説 by sounansya


AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題 A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。


条件を満たす \(i\) の個数を for 文を用いて求めれば良いです。

答えは以下のアルゴリズムで求めることができます:

  • \(\text{ans}=0\) とする。
  • \(i=1,2,\ldots,N-2\) の順に以下を行う:
    • \(A_{i}<A_{i+1}>A_{i+2}\) を満たす場合、\(\text{ans}\)\(1\) を足す。
  • \(\text{ans}\) を出力する。

実装例(Python3)

n = int(input())
a = list(map(int, input().split()))
ans = 0
for i in range(n - 2):
    ans += a[i] < a[i + 1] > a[i + 2]
print(ans)

実装例(C++)

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n;
	cin >> n;
	vector<int> a(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	int ans = 0;
	for (int i = 0; i < n - 2; i++) {
		if (a[i] < a[i + 1] && a[i + 1] > a[i + 2]) {
			ans++;
		}
	}
	cout << ans << endl;
	return 0;
}

投稿日時:
最終更新: