本記事は、競技プログラミング is 何のおまけ記事です。
実装するとしたら、のソースコードをのせた記事になります。
pythonをやってない人にもある程度わかりやすいように、
(競プロ的には)冗長なコードになっている箇所もありますが、ご容赦を。
単純な解法
# coding: utf-8
# 標準入力取得の高速化のpython用おまじない
import sys
input = sys.stdin.readline
# 標準入力を数値変換しながら取得
N = int(input())
# 標準入力を配列&数値変換しながら取得
H = [int(x) for x in input().split()]
# 各マスに降り立った時の最大移動可能距離を計算していく
# 移動可能距離の格納用変数の定義
ans = []
# 開始位置を先頭からずらしていく
for i in range(N):
count = 0
# 開始位置からどの程度移動可能か確認していく
for j in range(i,N-1):
if H[j] >= H[j+1]:
# 移動可能なら移動可能距離を増やす
count += 1
else:
#移動不可なら終了
break
# 移動可能距離一覧へ追加する
ans.append(count)
# 回答の表示
print(max(ans))
最適な解法
# coding: utf-8
# 標準入力取得の高速化のpython用おまじない
import sys
input = sys.stdin.readline
# 標準入力を数値変換しながら取得
N = int(input())
# 標準入力を配列&数値変換しながら取得
H = [int(x) for x in input().split()]
# ここまでは一緒
# 処理様の変数定義
max_count = 0
tmp_count = 0
# 先頭から見ていく
for i in range(N-1):
if H[i] >= H[i+1]:
# 移動可能なら距離カウントをふやす
tmp_count += 1
else:
# 移動不可時はその時点までの移動可能距離と
# 現在の最大移動可能距離を比較
if tmp_count > max_count:
# 今回の移動可能距離の方が大きいので更新する
max_count = tmp_count
# 現時点の移動可能距離をリセットする
tmp_count = 0
# ループ終端が、N-1なので、とある地点から右端まで移動可能な場合は、
# その移動距離と最大移動可能距離との比較が行われていないため、
# maxを使用してより大きい方の値を回答として使用する
print(max(max_count,tmp_count))